GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo eliminar la primera columna (que en realidad son nombres de fila) de un archivo de datos en Linux?

el uso idiomático de corte será

cut -f2- input > output

si el delimitador es tabulación ("\t").

O simplemente con awk magia (funcionará tanto para el espacio como para el delimitador de tabulación)

 awk '{$1=""}1' input | awk '{$1=$1}1' > output

el primer awk eliminará el campo 1, pero deja un delimitador, el segundo awk elimina el delimitador. El delimitador de salida predeterminado será el espacio, si desea cambiar a la pestaña, agregue -vOFS="\t" al segundo awk.

ACTUALIZADO

Según su entrada actualizada, el problema son los espacios iniciales que se cortan como columnas múltiples. Una forma de solucionarlo es eliminarlos antes de alimentarlos para cortar

sed 's/^ *//' input | cut -d" " -f2- > output

o usa el awk alternativa anterior que también funcionará en este caso.


Puedes usar cut comando con --complement opción:

cut -f1 -d" " --complement input.file > output.file

Esto generará todas las columnas excepto la primera.


@Karafka Tenía archivos CSV, así que agregué el separador "," (puedes reemplazarlo con el tuyo

cut -d"," -f2- input.csv  > output.csv

Luego, usé un ciclo para revisar todos los archivos dentro del directorio

# files are in the directory tmp/
for f in tmp/*
do
    name=`basename $f`
    echo "processing file : $name"
    #kepp all column excep the first one of each csv file 

    cut -d"," -f2- $f > new/$name
    #files using the same names are stored in directory new/  
done

Linux
  1. ¿Cómo eliminar las primeras/últimas líneas 'n' de la salida del comando en Shell?

  2. Elimine los primeros cinco caracteres en cualquier línea de un archivo de texto en Linux con sed

  3. ¿Cómo eliminar las líneas que aparecen en el archivo B de otro archivo A?

  4. generar la segunda columna de un archivo

  5. Omitir la primera línea de cualquier salida de comando de Linux

Cómo mostrar datos de un archivo de texto en Linux

Eliminar directorio en Linux:cómo eliminar una carpeta desde la línea de comandos

Cómo obtener el nombre de archivo de la ruta completa en Linux

¿Cómo obtener la ruta al archivo actual (pwd) en Linux desde C?

Cómo extraer un valor (en una fila y columna específicas) de un archivo y asignarlo a una nueva variable

¿Cómo leer la columna IDLE en la salida del comando Linux 'w'?