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.