Ich habe eine große Tab-getrennte Datei, die ich in der zweiten Spalte sortieren möchte. Ich muss das Tab-Zeichen als Feldtrennzeichen in cygwin sort verwenden. Also brauche ich so etwas:
%Vor%Aber die Eingabeaufforderung wertet "\ t" wörtlich und nicht als Tabulatorzeichen aus. Beachten Sie, dass ich dies auf einem Windows-Computer mit Cygwin ausführen muss. Variationen wie
%Vor%funktioniert nicht, auch nicht in eine cmd-Datei mit einem tatsächlichen Tab anstelle des obigen.
Bearbeiten: Eine Lösung, die entweder die DOS-Shell oder die Cygwin-Bash-Shell verwendet, ist in Ordnung.
Auf meinem Rechner (Mac bash prompt, GNU sort ...) funktioniert das:
%Vor%(Eine "echte" Registerkarte zwischen den Anführungszeichen.)
Um den Tab dort zu bekommen, tippe ich STRG-V, TAB (STRG-V gefolgt von TAB).
EDIT: Ich habe es jetzt auf einem Windows-Rechner von der cygwin-Eingabeaufforderung aus getestet und es funktioniert dort genauso (wie ich es erwartet habe, bash ist bash).
Sie müssen vor dem \ t ein $ -Zeichen hinzufügen, um die String-Interpolation einzuschalten, so dass die Registerkarte tatsächlich zum Sortieren gesendet wird. Dies sollte in jedem Terminal funktionieren:
%Vor%Ich wollte eine Lösung für das Sortieren von GnuWin32 unter Windows, aber keine der obigen Lösungen funktionierte für mich in der Befehlszeile. Aber die folgende Batch-Datei (.bat) hat funktioniert, was ich sowieso wollte. Geben Sie das Tabulatorzeichen in doppelte Anführungszeichen ein.
C: & gt; cat foo.bat
sort -k3 -t "" tabfile.txt
Wer sieht hier die Ironie?
Du musst durch die Rahmen springen, um den Tabulator als Tab zu erhalten ...
In der Windows-Eingabeaufforderung konnte ich Folgendes tun:
c: \ bin \ sort -t "(actual tab)" aber erst nach dem Start von cmd / f: off (wie oben angedeutet)
Auf Windows bat-Datei konnte ich dasselbe tun, solange der Texteditor (notepad2 :-) so eingestellt war, dass Tabs als Tabulatoren und nicht als Leerzeichen eingefügt wurden.
Es gibt einige beliebte Tipps, um ein -t $ '\ t "zu verwenden, aber ich habe versucht, 2 ^ 16 Kombinationen davon ohne Glück oder Haar.