separado punto por notas ejemplo descargar delimitado cómo crear crea convertir como comas coma bloc automaticamente archivo abrir bash shell csv awk text-parsing

bash - punto - ¿Cómo obtener la primera columna de cada línea desde un archivo CSV?



cómo se crea un archivo csv (6)

¿Cómo se obtiene la primera columna de cada línea en un archivo CSV de entrada y se envía a un nuevo archivo? Estoy pensando en usar awk pero no estoy seguro de cómo.


Prueba esto:

awk -F"," ''{print $1}'' data.txt

Dividirá cada línea de entrada en el archivo data.txt en diferentes campos basados ​​en , carácter (como se especifica con -F ) e imprimirá el primer campo (columna) en stdout.


Puede hacerse:

$ cut -d, -f1 data.txt


Entrada

a,12,34 b,23,56

Código

awk -F "," ''{print $1}'' Input

Formato

awk -F <delimiter> ''{print $<column_number>}'' Input


echo "a,b,c" | cut -d'','' -f1 > newFile


Esto se puede lograr usando grep :

$ grep -o ''^[^,]/+'' file.csv


Usando Perl:

perl -F, -lane ''print $F[0]'' data.txt > data2.txt

Estas opciones de línea de comando se usan:

  • -n loop alrededor de cada línea del archivo de entrada
  • -l elimina las nuevas líneas antes del procesamiento y las agrega de nuevo en adelante
  • -a modo autosplit - divide las líneas de entrada en la matriz @F . El valor predeterminado es la división en espacios en blanco.
  • -e ejecuta el código perl
  • -F modificador de autosplit, en este caso se divide ,

Si desea modificar su archivo original in situ, use la opción -i :

perl -i -lane ''print $F[0]'' data.txt

Si desea modificar su archivo original in situ y hacer una copia de seguridad:

perl -i.bak -lane ''print $F[0]'' data.txt

Si sus datos están separados en espacios en blanco en lugar de estar separados por comas:

perl -lane ''print $F[0]'' data.txt