Ich habe eine Datei mit Spalten, mit denen gespeert wurde tab
.
Ich habe eine Datei, wenn einige Zeilen leere Zellen haben (am Anfang, in der Mitte).
In solchen Fällen column -t -s $'\t'
scheitert einfach:
Eingang:
$ echo -e 'A\tB\tC\tD\n\tb1\t\td1\n\t\t\td2\na3\t\t\td3' > in.tsv
$ hexdump -C in.tsv
00000000 41 09 42 09 43 09 44 0a 09 62 31 09 09 64 31 0a |A.B.C.D..b1..d1.|
00000010 09 09 09 64 32 0a 61 33 09 09 09 64 33 0a |...d2.a3...d3.|
0000001e
Spaltenausgabe:
$ cat in.tsv | column -t -s $'\t'
A B C D
b1 d1
d2
a3 d3
Anstatt von:
A B C D
b1 d1
d2
a3 d3
Könnten Sie empfehlen, wie die TSV-Befehlszeilenformatierung durchgeführt wird? (Auf Unix-Art möchte ich die Ausgabe eines Programms in einen Formatierer leiten, wie column
)
Irgendeine Art "Fixing" column
-Ansatz? Vielleicht ein anderes Werkzeug?
text-processing
csv
spreadsheet
Grzegorz Wierzowiecki
quelle
quelle
\1
durch eine leere Zeichenfolge ersetzt?\(^\)
allein entspricht einer leeren Zeichenfolge, die am Zeilenanfang verankert ist.\1
"erzeugt eine Kopie" dieser leeren Zeichenkette.Der obige Befehl gilt für Pipe. Ersetzen Sie ihn also durch Tabulator.
Sie müssen nur leere Spalten durch ein Leerzeichen ersetzen und die Ausgabe an den Befehl weiterleiten, den Sie bereits verwenden.
quelle