¿Cómo ingreso un carácter de tabulación literal en un shell bash?

72

Por ejemplo, quería usar la utilidad de clasificación con la opción -t para especificar separadores de pestañas, pero

sort -t "\t"

no funciona

marca
fuente

Respuestas:

85

No uses comillas dobles.

sort -t $'\t'

¿O creo que Ctrl V inserta una pestaña?

Editar:

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

surfasb
fuente
¿La pestaña no inserta una pestaña?
RedGrittyBrick
44
La pestaña @RedGrittyBrick se completa.
Daniel Beck
12
Control-V solo no funcionará; Control-V + Tab lo hará. Sin $'...'embargo, me gusta el truco; Ahora he aprendido algo nuevo. :-)
L2G
Siempre lo aprendí como $' '. Le permite ingresar una cadena, pero también tiene caracteres escapados. Las \tcomillas dobles literalmente se imprimen Si deja de lado las comillas, obtendrá un carácter de tabulación.
Surfasb
59

Trate Control- v, entonces Tab. Si ve la pestaña del cursor a la derecha, funcionó.

De acuerdo con el comentario de Mark también puede intentar Control- vy Control- i.

L2G
fuente
Cuando hago esto, obtengo una pestaña real (es decir, sangría).
Daniel Beck
2
Ups Tienes razón. Pero está ingresando el carácter de tabulación, no completando la línea de comandos (que es lo que bash normalmente hace con una tabulación). Lo intenté sort -t " "(con la pestaña literal como se describió anteriormente) y funcionó para mí.
L2G
Sí, eso es lo que quise decir con sangría. No conocía un mejor término.
Daniel Beck
1
Ctrl-v, Ctrl-i también funcionarán (encontré esta respuesta aquí ). Además, creo que un Ctrl-q, Ctrl-v, Tab funcionará. Gracias L2G!
Mark
Por cierto, me encantaría aceptar ambas respuestas, pero como creo que la solución de surfasb es más legible, acepté la suya. Sin embargo, también me gusta el tuyo, así que lo voté. ¡Gracias!
Mark