Wie gebe ich ein oder mehrere Tabulatorzeichen mit einem Bash-Skript aus? Wenn ich diesen Code ausführe
res=' 'x # res = "\t\tx"
echo '['$res']' # erwarte [\t\tx]
Bekomme ich das
res=[ x] # das ist [x]
Wie gebe ich ein oder mehrere Tabulatorzeichen mit einem Bash-Skript aus? Wenn ich diesen Code ausführe
res=' 'x # res = "\t\tx"
echo '['$res']' # erwarte [\t\tx]
Bekomme ich das
res=[ x] # das ist [x]
Verwenden Sie die wörtliche Tastenkombination, ^V
(CTRL+V
, C-v
, was auch immer).
Wenn Sie ^V
in das Terminal eingeben (oder in den meisten Unix-Editoren), wird das folgende Zeichen wörtlich genommen. Sie können dies verwenden, um ein Literalzeichen einzugeben Tabulatorzeichen innerhalb eines Strings, den Sie wiedergeben.
So etwas wie das Folgende funktioniert:
echo "^V" # CTRL+V, TAB
Bash-Dokumentation (siehe auch, "quoted-insert")
quoted-insert (C-q, C-v) Fügen Sie das nächste von Ihnen eingegebene Zeichen wörtlich in die Zeile ein. So fügen Sie beispielsweise Tastenkombinationen wie C-q ein.
Anmerkung: laut dieser ALT+TAB
sollte das Gleiche tun, aber wir haben alle diese Sequenz für das Umschalten von Fenstern gebunden, sodass wir sie nicht verwenden können
tab-insert (M-TAB) Füge ein Tabulatorzeichen ein.
--
Hinweis: Sie können diese Strategie mit allen möglichen ungewöhnlichen Zeichen verwenden. Wie ein Wagenrücklauf:
echo "^V^M" # CTRL+V, CTRL+M
Dies liegt daran, dass der Wagenrücklauf ASCII 13 ist und M der 13. Buchstabe des Alphabets ist. Wenn Sie also ^M
eingeben, erhalten Sie das 13. ASCII-Zeichen. Sie können es in Aktion sehen, wenn Sie ls^M
an einer leeren Eingabeaufforderung verwenden, was einen Wagenrücklauf einfügt und die Eingabeaufforderung dazu bringt, sich genau so zu verhalten, als hätten Sie die Eingabetaste gedrückt. Wenn diese Zeichen normalerweise interpretiert werden, erhalten Sie mit wörtlich das tatsächliche Zeichen.
Wünschte, ich könnte dir mehr Upvotes für dieses geben. Ich wollte in diesem Fall kein -e in meinen Argumenten verwenden, und das funktioniert super. Danke!
"... meisten Unix-Editoren"? Habe versucht, dies mit beiden vi und emacs einzugeben und es hat in keinem der beiden die gewünschten Ergebnisse geliefert.
Das ist soooo cool! Und hat meinen Tag gerettet, als ich versucht habe, grep
zu verwenden, um Zeilen mit Tab
-Zeichen zu finden.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.