Was ist der effizienteste Weg, um tabulatorgetrennte Daten wie diese zu konvertieren:
a b c d cat
NULL NULL NULL NULL NULL
NULL NULL NULL d d
NULL NULL c NULL c
NULL NULL c d c; d
NULL b NULL NULL b
NULL b NULL d b; d
NULL b c NULL b; c
NULL b c d b; c; d
a NULL NULL NULL a
a NULL NULL d a; d
a NULL c NULL a; c
a NULL c d a; c; d
a b NULL NULL a; b
a b NULL d a; b; d
a b c NULL a; b; c
a b c d a; b; c; d
Etwas in der Nähe davon:
a | b | c | d | cat
-----+------+------+------+-----------
NULL | NULL | NULL | NULL | NULL
NULL | NULL | NULL | d | d
NULL | NULL | c | NULL | c
NULL | NULL | c | d | c; d
NULL | b | NULL | NULL | b
NULL | b | NULL | d | b; d
NULL | b | c | NULL | b; c
NULL | b | c | d | b; c; d
a | NULL | NULL | NULL | a
a | NULL | NULL | d | a; d
a | NULL | c | NULL | a; c
a | NULL | c | d | a; c; d
a | b | NULL | NULL | a; b
a | b | NULL | d | a; b; d
a | b | c | NULL | a; b; c
a | b | c | d | a; b; c; d
Derzeit verwende ich Notepad ++ wie folgt:
- Konvertieren Sie Tabulatoren in Leerzeichen
- Richten Sie die Daten manuell aus
- Verwenden Sie den Spaltenmodus, um die Rohre einzufügen
Der zweite Schritt ist der langwierigste und ich würde zumindest diesen Teil lieber automatisieren lassen.
Hinweis: Ich benutze einen Browser, wenn ich arbeite, und manchmal habe ich einen Texteditor daneben geöffnet. Die effiziente Lösung erfordert den geringsten Aufwand. Ich kann nutzen:
- Editor ++
- Generischer Texteditor mit Unterstützung für Regexp-Suchen / Ersetzen
- JavaScript in der Browserkonsole eingegeben
- Online-Webdienst
- PHP in der Kommandozeile (
php -a
)
conversion
csv
text-formatting
ascii
Salman A.
quelle
quelle
awk
Skript.{{(⊃⍵)⍪⍉⍪↑¨↓⍉↑1↓⍵}s¨'⎕T'⎕T¨(s←1↓¨⊢⊂⍨⊢=⊃)¯1⌽⍵}
scheint nett genug zu sein, um daran zu arbeiten, oder?)Antworten:
Wie kann ich tabulatorgetrennte Werte in eine ASCII-Tabelle konvertieren?
Ich benutze Text Tables Generator für diese Art von Aufgabe.
Ich habe Ihre Daten auf dieser Seite eingefügt und die folgende Tabelle erstellt:
Sie können diese Ausgabe dann kopieren (der Generator hat die meiste harte Arbeit geleistet), in Notepad ++ einfügen und entsprechend bereinigen.
quelle
Wenn Sie eine Befehlszeilenlösung benötigen, können Sie pandoc auch mit dem Filter pandoc-placetable verwenden .
Platzieren Sie Ihren Tisch
foo.txt
und führen Sie Folgendes aus:Was zu folgenden Ergebnissen führt
output.md
:Um aus STDIN zu lesen, lassen Sie das
--file
Argument weg . Lassen Sie das-o
Argument weg, um in STDOUT zu drucken .quelle
Ruslans Idee , den Unix / Linux-
column
Befehl zu verwenden, ist gut, aber die in ihrer Antwort angegebene Befehlszeile funktioniert nicht ganz. Erstenscolumn
erkennt\t
(oder\\t
) in der Befehlszeile nicht als Registerkarte. Wenn Sie habenbash
, können Sie tunAnsonsten können Sie tun
Aber auch das beantwortet die Frage nicht. Sie können die vertikalen Balken erhalten, indem Sie dies tun
das erzeugt Ausgabe wie
Das manuelle Hinzufügen der Strichlinie nach der Kopfzeile ist nicht so mühsam.
Wenn Sie keinen Zugriff auf ein vollständiges Unix / Linux-System haben, können Sie dafür Cygwin oder eines der anderen Unix-Likes verwenden.
quelle
set ts=4
Einstellung).