GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Extrahieren von Spalten aus einer Textdatei mit unterschiedlichen Trennzeichen in Linux

Wenn der Befehl sowohl mit Tabulatoren als auch mit Leerzeichen als Trennzeichen funktionieren soll, würde ich awk verwenden :

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

Solange Sie nur 5 Felder angeben müssen, ist es imo ok, sie einfach einzugeben, für größere Bereiche können Sie einen for verwenden Schleife:

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

Wenn Sie cut verwenden möchten , müssen Sie den -f verwenden Möglichkeit:

cut -f100-105 myfile > outfile

Wenn das Feldtrennzeichen von TAB abweicht Sie müssen es mit -d angeben :

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

Weitere Informationen zum cut-Befehl finden Sie in der Manpage.


Sie können cut mit einem Trennzeichen wie diesem verwenden:

mit Leerzeichen:

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

mit Tabulatortrennzeichen:

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

Ich habe Ihnen die Version von cut gegeben, in der Sie eine Liste von Intervallen extrahieren können...

Hoffe es hilft!


Linux
  1. Wie führe ich ein Programm mit einem anderen Arbeitsverzeichnis als dem aktuellen aus, von der Linux-Shell?

  2. Wie kann man unter Linux Binärdateien von Textdateien unterscheiden?

  3. Löschen Sie die ersten fünf Zeichen in einer beliebigen Zeile einer Textdatei unter Linux mit sed

  4. Lesen einer CSV-Datei mit SQL-Abfragen aus der Linux-Shell

  5. Datei von Linux auf Windows Share mit C# (.NET Core) kopieren

Linux cut Befehl erklärt mit 6 Beispielen

Linux-WC-Befehl mit Beispielen

So erstellen Sie Verzeichnisse aus einer Textdatei unter Linux

So zeigen Sie Daten aus einer Textdatei in Linux an

So extrahieren Sie E-Mail-Adressen aus einer Textdatei unter Linux

Wie zeigt man bestimmte Zeilen aus einer Textdatei in Linux an?