Como insiro um caractere de tabulação literal em um shell bash?


72

Por exemplo, eu queria usar o utilitário de classificação com a opção -t para especificar separadores de tabulação, mas

sort -t "\t"

não funciona

Respostas:


85

Não use aspas duplas.

sort -t $'\t'

Ou acho que Ctrl V insere uma guia?

Editar:

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


A guia não insere uma guia?
RedGrittyBrick

4
A guia @RedGrittyBrick é concluída.
Daniel Beck

12
Control-V sozinho não funcionará; Control-V + Tab será. Eu gosto do $'...'truque; agora eu aprendi algo novo. :-)
L2G 28/11

Eu sempre aprendi isso como $' '. Ele permite que você insira uma string, mas também possui caracteres de escape. As \taspas duplas são impressas literalmente. Se você deixar de aspas, obterá um caractere de tabulação.
Surfasb #

59

Tente Control- ventão Tab. Se você vir a guia do cursor para a direita, funcionou.

De acordo com o comentário de Mark, você também pode tentar Control- ve depois Control- i.


Quando faço isso, recebo uma guia real (ou seja, recuo).
Daniel Beck

2
Opa Você está certo. Mas ele está inserindo o caractere de tabulação, sem concluir a linha de comando (que é o que o bash normalmente faz com uma tabulação). Eu tentei sort -t " "(com a guia literal como descrito acima) e funcionou para mim.
L2G

Sim, é isso que eu quis dizer com recuo. Não conhecia um termo melhor.
Daniel Beck

11
Ctrl-v, Ctrl-i também funcionará (encontrei esta resposta aqui ). Além disso, acho que um Ctrl-q, Ctrl-v, Tab funcionará. Obrigado L2G!
Mark

BTW, eu adoraria aceitar as duas respostas, mas como acho que a solução do surfasb é mais legível, aceitei a dela. Também gosto do seu, então votei nele. Obrigado!
Mark
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.