Wie gebe ich ein literales Tabulatorzeichen in eine Bash-Shell ein?


72

Ich wollte zum Beispiel das Dienstprogramm sort mit der Option -t verwenden, um Tabulatortrennzeichen anzugeben, aber

sort -t "\t"

funktioniert nicht

Antworten:


85

Verwenden Sie keine doppelten Anführungszeichen.

sort -t $'\t'

Oder ich denke, Strg V fügt ein Tab?

Bearbeiten:

http://www.gnu.org/s/bash/manual/html_node/ANSI_002dC-Quoting.html#ANSI_002dC-Quoting


Fügt ein Tabulator keinen Tabulator ein?
RedGrittyBrick

4
@ RedGrittyBrick Tab abgeschlossen.
Daniel Beck

12
Control-V alleine wird nicht funktionieren; Strg-V + Tab wird. Ich mag den $'...'Trick allerdings; jetzt habe ich was neues gelernt. :-)
L2G

Ich habe es immer gelernt als $' '. Sie können eine Zeichenfolge eingeben, aber auch Zeichen mit Escapezeichen verwenden. Doppelte \tAnführungszeichen werden buchstäblich gedruckt. Wenn Sie die Anführungszeichen weglassen, erhalten Sie ein Tabulatorzeichen.
Surfasb

59

Versuchen Sie Control- vdann Tab. Wenn Sie die Cursor-Registerkarte rechts sehen, hat es funktioniert.

Nach dem Kommentar von Markus kannst du es auch versuchen Control- vund dann Control- i.


Wenn ich das mache, bekomme ich eine echte Registerkarte (dh Einrückung).
Daniel Beck

2
Hoppla. Du hast recht. Es wird jedoch das Tabulatorzeichen eingegeben und keine Befehlszeilenvervollständigung durchgeführt (wie dies bei Bash normalerweise bei einem Tabulator der Fall ist). Ich habe es versucht sort -t " "(mit dem wörtlichen Tab wie oben beschrieben) und es hat bei mir funktioniert.
L2G

Ja, das habe ich mit Einrücken gemeint. Wusste keinen besseren Begriff.
Daniel Beck

1
Ctrl-v, Ctrl-i wird auch funktionieren (diese Antwort habe ich hier gefunden ). Ich denke auch, dass ein Strg-q, Strg-v, Tab funktionieren wird. Danke L2G!
Mark

Übrigens würde ich gerne beide Antworten akzeptieren, aber da ich der Meinung bin, dass die Lösung von surfasb besser lesbar ist, habe ich ihre akzeptiert. Ich mag auch deine, also habe ich sie gewählt. Vielen Dank!
Mark
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.