GNU/Linux >> Linux Esercitazione >  >> Linux

Come eliminare la prima colonna (che in realtà è il nome della riga) da un file di dati in Linux?

l'uso idiomatico di cut sarà

cut -f2- input > output

se il delimitatore è tab ("\t").

Oppure, semplicemente con awk magic (funzionerà sia per lo spazio che per il delimitatore di tabulazione)

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

il primo awk eliminerà il campo 1, ma lascia un delimitatore, il secondo awk rimuove il delimitatore. Il delimitatore di output predefinito sarà lo spazio, se vuoi passare alla scheda, aggiungi -vOFS="\t" al secondo awk.

AGGIORNATO

In base al tuo input aggiornato, il problema sono gli spazi iniziali che tagliano i trattamenti come più colonne. Un modo per risolvere il problema è rimuoverli prima di nutrirli per tagliare

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

o usa il awk alternativa sopra che funzionerà anche in questo caso.


Puoi usare cut comando con --complement opzione:

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

Questo produrrà tutte le colonne tranne la prima.


@Karafka Avevo file CSV quindi ho aggiunto il separatore "," (puoi sostituirlo con il tuo

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

Quindi, ho usato un ciclo per esaminare tutti i file all'interno della directory

# 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. Leggi e scrivi dati da qualsiasi luogo con reindirizzamento nel terminale Linux

  2. Come prevenire e ripristinare l'eliminazione accidentale di file in Linux

  3. Linux:la colonna dei buffer nell'output di Free?

  4. Come eliminare più righe casuali da un file di testo utilizzando Sed?

  5. Linux:con quale frequenza viene aggiornato il file system Proc su Linux?

Come visualizzare i dati da un file di testo in Linux

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Come ottenere il nome del file dal percorso completo in Linux

Come ottenere il percorso del file corrente (pwd) in Linux da C?

Come estrarre un valore (in una specifica riga e colonna) da un file e assegnarlo a una nuova variabile

Come leggere la colonna IDLE nell'output del comando Linux 'w'?