Comment entrer un caractère de tabulation littéral dans un shell bash?


72

Par exemple, je voulais utiliser l'utilitaire de tri avec l'option -t pour spécifier des séparateurs de tabulation, mais

sort -t "\t"

ne fonctionne pas.

Réponses:


85

N'utilisez pas de guillemets doubles.

sort -t $'\t'

Ou je pense que Ctrl V insère un onglet ??

Modifier:

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


Onglet n'insère pas un onglet?
RedGrittyBrick

4
@RedGrittyBrick Tab complète.
Daniel Beck

12
Control-V seul ne fonctionnera pas; Control-V + Tab sera. J'aime le $'...'truc, cependant; maintenant j'ai appris quelque chose de nouveau. :-)
L2G

Je l'ai toujours appris comme $' '. Il vous permet d'entrer une chaîne, mais aussi d'avoir des caractères d'échappement. La double citation s'imprime littéralement. \tSi vous laissez les citations de côté, vous obtenez un caractère de tabulation.
surfasb

59

Essayez Control- v, alors Tab. Si vous voyez l'onglet du curseur à droite, cela a fonctionné.

Selon le commentaire de Mark, vous pouvez également essayer Control- vet ensuite Control- i.


Lorsque je fais cela, je reçois un véritable onglet (c.-à-d. Indentation).
Daniel Beck

2
Oops. Vous avez raison. Mais il est entre dans le caractère de tabulation, fait pas l' achèvement de ligne de commande (qui est ce que bash normalement avec un onglet). J'ai essayé sort -t " "(avec l'onglet littéral décrit ci-dessus) et cela a fonctionné pour moi.
L2G

Oui, c'est ce que je voulais dire par indentation. Je ne connaissais pas un meilleur terme.
Daniel Beck

1
Ctrl-v, Ctrl-i fonctionnera également (j'ai trouvé cette réponse ici ). De plus, je pense qu'un Ctrl-q, Ctrl-v, Tab fonctionnera. Merci L2G!
Mark

BTW, j'aimerais bien accepter les deux réponses, mais comme je pense que la solution de surfasb est plus lisible, j'ai accepté la sienne. J'aime aussi le tien aussi, alors vota. Merci!
Mark
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.