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

am schnellsten konvertieren tabulatorgetrennte datei in csv in linux

Wenn Sie nur noch übersetzen müssen alle Tabulatorzeichen in Kommazeichen, tr ist wahrscheinlich der richtige Weg.

Das Leerzeichen hier ist ein wörtlicher Tabulator:

$ echo "hello   world" | tr "\\t" ","
hello,world

Wenn Sie Tabulatoren in String-Literale in der Datei eingebettet haben, werden diese natürlich auch falsch übersetzt; aber eingebettete wörtliche Tabulatoren wären ziemlich ungewöhnlich.


perl -lpe 's/"/""/g; s/^|$/"/g; s/\t/","/g' < input.tab > output.csv

Perl ist in solchen Dingen im Allgemeinen schneller als sed, awk und Python.


Wenn Sie sich Sorgen um eingebettete Kommas machen, müssen Sie eine etwas intelligentere Methode verwenden. Hier ist ein Python-Skript, das TSV-Zeilen von stdin nimmt und CSV-Zeilen nach stdout schreibt:

import sys
import csv

tabin = csv.reader(sys.stdin, dialect=csv.excel_tab)
commaout = csv.writer(sys.stdout, dialect=csv.excel)
for row in tabin:
  commaout.writerow(row)

Führen Sie es wie folgt von einer Shell aus:

python script.py < input.tsv > output.csv

  • Wenn Sie die gesamte tsv-Datei in eine csv-Datei konvertieren möchten:

    $ cat data.tsv | tr "\\t" "," > data.csv
    
  • Wenn Sie einige Felder weglassen möchten:

    $ cat data.tsv | cut -f1,2,3 | tr "\\t" "," > data.csv
    

    Der obige Befehl konvertiert die data.tsv-Datei in eine data.csv-Datei, die nur die ersten drei enthält Felder.


Linux
  1. Eine einfache Möglichkeit, Dateien und Verzeichnisse in Linux zu verstecken

  2. csplit:Eine bessere Möglichkeit, Dateien in Linux basierend auf ihrem Inhalt zu teilen

  3. Installieren Sie AzCopy unter Linux – die schnellste Methode zum Kopieren in Azure

  4. Die effizienteste Methode zum Kopieren einer Datei unter Linux

  5. Der schnellste Weg, um die Systemverfügbarkeit in Python unter Linux zu erhalten

Linux Touch-Befehl

Cat-Befehl unter Linux

So konvertieren Sie Raw-Kamerabilder in JPEG in Linux

So konvertieren Sie xlsx in das CSV-Format unter Linux

Der schnellste Weg zum rekursiven Zählen von Dateien unter Linux

So konvertieren Sie eine .pem-Datei in eine .ppk-Datei unter Windows und Linux