GNU/Linux >> Linux Esercitazione >  >> Linux

Estrazione di colonne da file di testo con delimitatori diversi in Linux

Se il comando dovesse funzionare sia con tabulazioni che con spazi come delimitatore, userei awk :

awk '{print $100,$101,$102,$103,$104,$105}' myfile > outfile

Finché devi solo specificare 5 campi, va bene anche solo digitarli, per intervalli più lunghi puoi usare un for ciclo:

awk '{for(i=100;i<=105;i++)print $i}' myfile > outfile

Se vuoi usare cut , devi utilizzare il -f opzione:

cut -f100-105 myfile > outfile

Se il delimitatore di campo è diverso da TAB devi specificarlo usando -d :

cut -d' ' -f100-105 myfile > outfile

Controlla la pagina man per maggiori informazioni sul comando cut.


Puoi usare cut con un delimitatore come questo:

con spazio delim:

cut -d " " -f1-100,1000-1005 infile.csv > outfile.csv

con delimitatore di tabulazione:

cut -d$'\t' -f1-100,1000-1005 infile.csv > outfile.csv

Ti ho dato la versione di cut in cui puoi estrarre un elenco di intervalli...

Spero ti sia d'aiuto!


Linux
  1. Come distinguere il binario dai file di testo in Linux

  2. Elimina i primi cinque caratteri su qualsiasi riga di un file di testo in Linux con sed

  3. Lettura di un file CSV con query SQL dalla shell Linux

  4. Copia il file da Linux a Windows Condividi con C# (.NET core)

  5. Come estrarre il testo con OCR da un PDF su Linux?

Spiegazione del comando di taglio di Linux con 6 esempi

Come aggiungere testo alla fine del file in Linux

Comando Linux WC con esempi

Come creare directory da un file di testo in Linux

Come visualizzare i dati da un file di testo in Linux

Come estrarre indirizzi e-mail da file di testo in Linux