tr è un'utilità UNIX per tradurre, eliminare o comprimere caratteri ripetuti. Leggerà da STDIN e scriverà a STDOUT.
tr sta per translate.
Sintassi
La sintassi del comando tr è:
$ tr [OPTION] SET1 [SET2]
Traduzione
Se sono specificati sia SET1 che SET2 e '-d' OPTION non è specificato, il comando tr sostituirà ogni carattere in SET1 con ogni carattere nella stessa posizione in SET2.
1. Converti da minuscolo a maiuscolo
Il seguente comando tr viene utilizzato per convertire le lettere minuscole in maiuscole
$ tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ thegeekstuff THEGEEKSTUFF
Il comando seguente converte anche le lettere minuscole in maiuscole
$ tr [:lower:] [:upper:] thegeekstuff THEGEEKSTUFF
Puoi anche usare intervalli in tr. Il comando seguente utilizza gli intervalli per convertire da minuscolo a maiuscolo.
$ tr a-z A-Z thegeekstuff THEGEEKSTUFF
2. Traduci le parentesi tra parentesi
Puoi anche tradurre da e verso un file. In questo esempio tradurremo le parentesi graffe in un file con parentesi.
$ tr '{}' '()' < inputfile > outputfile
Il comando precedente leggerà ogni carattere da "inputfile", tradurrà se è una parentesi e scriverà l'output in "outputfile".
3. Traduci gli spazi bianchi in schede
Il comando seguente tradurrà tutti gli spazi bianchi in schede
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
4. Spremere la ripetizione dei caratteri usando -s
Nell'esempio 3, vediamo come tradurre lo spazio con le tabulazioni. Ma se sono presenti due spazi in più in modo continuo, il comando precedente tradurrà ciascuno spazio in una scheda come segue.
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
Possiamo usare l'opzione -s per spremere la ripetizione dei caratteri.
$ echo "This is for testing" | tr -s [:space:] '\t' This is for testing
Allo stesso modo puoi convertire più spazi continui con un singolo spazio
$ echo "This is for testing" | tr -s [:space:] ' ' This is for testing
5. Elimina i caratteri specificati usando l'opzione -d
tr può anche essere usato per rimuovere caratteri particolari usando l'opzione -d.
$ echo "the geek stuff" | tr -d 't' he geek suff
Per rimuovere tutte le cifre dalla stringa, usa
$ echo "my username is 432234" | tr -d [:digit:] my username is
Inoltre, se desideri eliminare le righe dal file, puoi utilizzare il comando sed d.
6. Completa i set usando l'opzione -c
Puoi completare SET1 usando l'opzione -c. Ad esempio, per rimuovere tutti i caratteri tranne le cifre, puoi utilizzare quanto segue.
$ echo "my username is 432234" | tr -cd [:digit:] 432234
7. Rimuovi tutti i caratteri non stampabili da un file
Il comando seguente può essere utilizzato per rimuovere tutti i caratteri non stampabili da un file.
$ tr -cd [:print:] < file.txt
8. Unisci tutte le righe di un file in un'unica riga
Il comando seguente tradurrà tutte le nuove righe in spazi e renderà il risultato come una singola riga.
$ tr -s '\n' ' ' < file.txt