Jak wprowadzić dosłowny znak tabulacji w powłoce bash?


72

Na przykład chciałem użyć narzędzia sortującego z opcją -t, aby określić separatory tabulatorów, ale

sort -t "\t"

nie działa

Odpowiedzi:


85

Nie używaj podwójnych cudzysłowów.

sort -t $'\t'

Czy też myślę, że Ctrl V wstawia Tab?

Edytować:

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


Czy karta nie wstawia karty?
— RedGrittyBrick

4
Karta @RedGrittyBrick została zakończona.
— Daniel Beck

12
Sam Control-V nie zadziała; Control + V + Tab. $'...'Jednak podoba mi się ten trik; teraz ja nauczyłem się czegoś nowego. :-)
— L2G

Zawsze nauczyłem się tego jako $' '. Pozwala wprowadzić ciąg znaków, ale także znaki specjalne. Podwójne cytowanie drukuje dosłownie. \tJeśli pominiesz cytaty, otrzymasz znak tabulacji.
— surfasb

59

Spróbuj Control- vwtedy Tab. Jeśli zobaczysz kartę kursora po prawej stronie, zadziałało.

Zgodnie z komentarzem Marka możesz także spróbować Control- va następnie Control- i.


Kiedy to robię, otrzymuję prawdziwą zakładkę (tj. Wcięcie).
— Daniel Beck

2
Ups Masz rację. Ale to jest wprowadzeniem znaku tabulatora, nie robi zakończenie wiersza polecenia (czyli to, co zwykle robi bash z karty). Próbowałem sort -t " "(z literalną zakładką jak opisano powyżej) i zadziałało to dla mnie.
— L2G,

Tak, właśnie to miałem na myśli przez wcięcie. Nie znałem lepszego terminu.
— Daniel Beck

1
Ctrl-v, Ctrl-i również będzie działać (znalazłem tę odpowiedź tutaj ). Myślę też, że Ctrl-q, Ctrl-v, Tab będzie działać. Dzięki L2G!
— Mark

BTW, chciałbym zaakceptować obie odpowiedzi, ale ponieważ uważam, że rozwiązanie surfasb jest bardziej czytelne, zaakceptowałem jej. Ale ja też lubię twoją, więc zagłosowałem. Dzięki!
— Mark
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.