Come posso inserire un carattere di tabulazione letterale in una shell bash?


72

Ad esempio, volevo usare l'utilità di ordinamento con l'opzione -t per specificare i separatori di schede, ma

sort -t "\t"

non funziona

Risposte:


85

Non usare virgolette doppie.

sort -t $'\t'

O penso che Ctrl V inserisca una scheda ??

Modificare:

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


La scheda non inserisce una scheda?
RedGrittyBrick,

4
La scheda @RedGrittyBrick è completa.
Daniel Beck

12
Control-V da solo non funzionerà; Control-V + Tab lo farà. Mi piace il $'...'trucco, però; ora ho imparato qualcosa di nuovo. :-)
L2G

L'ho sempre imparato come $' '. Ti permette di inserire una stringa, ma ha anche caratteri di escape. Le doppie \tvirgolette vengono letteralmente stampate Se si lasciano le virgolette si ottiene un carattere di tabulazione.
surfasb,

59

Prova Control- v, quindi Tab. Se vedi la scheda cursore a destra, ha funzionato.

Secondo il commento di Mark puoi anche provare Control- ve poi Control- i.


Quando lo faccio, ottengo una scheda reale (es. Rientro).
Daniel Beck

2
Ops. Hai ragione. Ma sta inserendo il carattere di tabulazione, non sta completando la riga di comando (che è ciò che normalmente fa bash con una scheda). Ho provato sort -t " "(con la scheda letterale come descritto sopra) e ha funzionato per me.
L2G,

Sì, questo è ciò che intendevo per rientro. Non conoscevo un termine migliore.
Daniel Beck

1
Ctrl-v, Ctrl-i funzionerà anche (ho trovato questa risposta qui ). Inoltre, penso che un Ctrl-q, Ctrl-v, Tab funzionerà. Grazie L2G!
Segna il

A proposito, mi piacerebbe accettare entrambe le risposte, ma poiché penso che la soluzione di Surfasb sia più leggibile, ho accettato la sua. Anche a me piace la tua, quindi ho votato. Grazie!
Segna il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.