Ricerca nel sito web

10 esempi di comandi tr in Linux


tr (abbreviazione di translate) è un'utile utility da riga di comando che traduce e/o cancella caratteri dall'input stdin e scrive su stdout. È un programma utile per manipolare il testo sulla riga di comando.

Questo articolo spiegherà alcuni utili esempi di comandi tr per i principianti di Linux.

La sintassi per eseguire il comando tr è la seguente, dove i caratteri in SET1 vengono tradotti in caratteri in SET2.

tr flags [SET1] [SET2]

Esempi di comandi Linux tr

1. Un semplice caso d'uso del comando tr consiste nel cambiare tutte le lettere minuscole nel testo in maiuscole e viceversa, come mostrato di seguito.

$ cat linux.txt

linux is my life
linux has changed my life
linux is best and everthing to me..:)
$ cat linux.txt | tr [:lower:] [:upper:]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

2. In alternativa, puoi utilizzare il comando seguente per modificare tutte le lettere minuscole in maiuscole in un file, come mostrato.

$ cat linux.txt | tr [a-z] [A-Z]

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

3. Per salvare i risultati scritti su stdout in un file per un'elaborazione successiva, utilizza la funzione di reindirizzamento dell'output della shell (>) come mostrato.

$ cat linux.txt | tr [a-z] [A-Z] >output.txt
$ cat output.txt 

LINUX IS MY LIFE
LINUX HAS CHANGED MY LIFE
LINUX IS BEST AND EVERTHING TO ME..:)

4. Per quanto riguarda il reindirizzamento, puoi inviare input a tr utilizzando il reindirizzamento dell'input e reindirizzare l'output a un file utilizzando lo stesso comando, come mostrato.

$ tr [a-z] [A-Z] < linux.txt >output.txt

5. Un'altra caratteristica utile è che puoi utilizzare il flag -d per eliminare caratteri, ad esempio per rimuovere gli spazi nei nomi di dominio utilizzando il seguente comando.

$ cat domains.txt

www. tecmint. com
www. fossmint. com
www. linuxsay. com
$ cat domains.txt | tr -d '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

6. Se ci sono caratteri ripetuti in una sequenza (ad esempio doppi spazi) nel testo che stai elaborando, puoi utilizzare l'opzione -s per comprimere i caratteri lasciando solo un'occorrenza di esso.

$ cat domains.txt

www.tecmint.....com
www.fossmint.com
www.linuxsay.com
$ cat domains.txt | tr -s '' 

linux-console.net
www.fossmint.com
www.linuxsay.com

7. L'opzione -c dice a tr di usare il complemento nel dato di SET. In questo esempio, vogliamo eliminare tutte le lettere e lasciare solo l'UID.

$ echo "My UID is $UID" | tr -cd "[:digit:]\n"
OR
$ echo "My UID is $UID" | tr -d "a-zA-Z"

8. Ecco un esempio di suddivisione di una singola riga di parole (frase) in più righe, in cui ciascuna parola appare separatamente.

$ echo "My UID is $UID"

My UID is 1000

$ echo "My UID is $UID" | tr " "  "\n"

My 
UID 
is 
1000

9. In relazione all'esempio precedente, puoi anche tradurre più righe di parole in un'unica frase, come mostrato.

$ cat uid.txt

My 
UID 
is 
1000

$ tr "\n" " " < uid.txt

My UID is 1000

10. È anche possibile tradurre un solo carattere, ad esempio uno spazio, in un carattere “ : ”, come segue.

$ echo "linux-console.net =>Linux-HowTos,Guides,Tutorials" | tr " " ":"

linux-console.net:=>Linux-HowTos,Guides,Tutorials

Esistono diversi caratteri di sequenza che puoi utilizzare con tr; per ulteriori informazioni, consulta la pagina man tr.

man tr

È tutto! tr è un comando utile per manipolare il testo sulla riga di comando. In questa guida abbiamo mostrato alcuni utili esempi di utilizzo del comando tr per i principianti di Linux. Puoi condividere i tuoi pensieri con noi tramite il modulo di commento qui sotto.