07 IMPARARE LINUX: CERTIFICAZIONE LINUX LPIC ESAMI 101 E 102 - Expand, Od VIDEORIPETIZIONI
Sommario:
- Come usare il comando
tr
- Combinazione di opzioni
- Esempi di comandi Tr
- Converti lettere minuscole in maiuscole
- Rimuovi tutti i caratteri non numerici
- Inserisci ogni parola in una nuova riga
- Rimuovi le righe vuote
- Stampa le directory
$PATH
su una riga separata - Conclusione
tr
è un'utilità della riga di comando nei sistemi Linux e Unix che traduce, elimina e comprime i caratteri dall'input standard e scrive il risultato nell'output standard.
Il comando
tr
può eseguire operazioni come la rimozione di caratteri ripetuti, la conversione di lettere maiuscole in minuscole e la sostituzione e la rimozione di caratteri di base. In genere, viene utilizzato in combinazione con altri comandi tramite piping.
In questo tutorial, ti mostreremo come utilizzare il comando
tr
attraverso esempi pratici e spiegazioni dettagliate delle opzioni più comuni.
Come usare il comando
tr
La sintassi per il comando
tr
è la seguente:
tr OPTION… SET1
tr
accetta due set di caratteri, generalmente con la stessa lunghezza, e sostituisce i caratteri dei primi set con i caratteri corrispondenti del secondo set.
Un
SET
è fondamentalmente una serie di caratteri, inclusi gli speciali caratteri con escape backslash.
Nel seguente esempio,
tr
sostituirà tutti i caratteri dallo standard input (linuxize), mappando i caratteri del primo set con quelli corrispondenti del secondo set.
echo 'linuxize' | tr 'lin' 'red'
Ogni occorrenza di
l
è sostituita da
r
,
i
con
e
ed
n
con
d
:
reduxeze
I set di caratteri possono anche essere definiti utilizzando intervalli di caratteri. Ad esempio, invece di scrivere:
echo 'linuxize' | tr 'lmno' 'wxyz'
Puoi usare:
echo 'linuxize' | tr 'ln' 'w-z'
Quando viene utilizzata l'opzione
-c
(
--complement
),
tr
sostituisce tutti i caratteri che non sono in SET1.
Nell'esempio seguente tutti i caratteri tranne "li" saranno sostituiti con l'ultimo carattere del secondo set:
echo 'linuxize' | tr -c 'li' 'xy'
liyyyiyyy
Come avrai notato, l'output sopra ha un carattere più visibile dell'input. Questo perché il comando
echo
stampa un carattere di nuova riga invisibile
che viene anche sostituito con
y
. Per eseguire l'eco di una stringa senza una nuova riga, utilizzare l'opzione
-n
.
L'opzione
-d
(
--delete
) dice a
tr
di cancellare i caratteri specificati in SET1. Quando si eliminano i caratteri senza stringere, specificare solo un set.
Il comando seguente rimuoverà
i
caratteri
l
,
z
:
echo 'Linuxize' | tr -d 'liz'
Il carattere
L
non viene cancellato perché l'input include una
L
maiuscola mentre il carattere
l
nel SET è minuscolo.
Lnuxe
L'opzione
-s
(
--squeeze-repeats
) sostituisce una sequenza di ricorrenze ripetute con il set di caratteri nell'ultimo SET.
Nel seguente esempio,
tr
rimuove i caratteri ripetuti dello spazio:
echo "GNU \ Linux" | tr -s ' '
GNU \ Linux
Quando si utilizza SET2, la sequenza del carattere specificato in SET1 viene sostituita con SET2.
echo "GNU \ Linux" | tr -s ' ' '_'
GNU_\_Linux
L'opzione
-t
(
--truncate-set1
) forza
tr
a troncare SET1 alla lunghezza di SET2 prima di eseguire ulteriori elaborazioni.
Per impostazione predefinita, se SET1 è maggiore di SET2
tr
riutilizzerà l'ultimo carattere di SET2. Ecco un esempio:
echo 'Linux ize' | tr 'abcde' '12'
L'output mostra che il carattere
e
di SET1 è abbinato all'ultimo carattere di SET2, che è
2
:
Linux iz2
Ora usa lo stesso comando con l'opzione
-t
:
echo 'Linux ize' | tr -t 'abcde' '12'
Linux ize
Puoi vedere che gli ultimi tre caratteri di SET1 sono stati rimossi. SET1 diventa 'ab', la stessa lunghezza di SET2 e non viene effettuata alcuna sostituzione.
Combinazione di opzioni
Il comando
tr
consente anche di combinare le sue opzioni. Ad esempio, il comando seguente sostituisce prima tutti i caratteri tranne
i
con
0
e quindi stringe i
0
caratteri ripetuti:
echo 'Linux ize' | tr -cs 'i' '0'
Esempi di comandi Tr
In questa sezione, tratteremo alcuni esempi di usi comuni del comando
tr
.
Converti lettere minuscole in maiuscole
La conversione di lettere minuscole in maiuscole o inverse è uno dei casi d'uso tipici del comando
tr
.
corrisponde a tutti i caratteri minuscoli e
corrisponde a tutti i caratteri maiuscoli.
echo 'Linuxize' | tr '' ''
LINUXIZE
Invece di classi di caratteri, puoi anche usare intervalli:
echo 'Linuxize' | tr 'az' 'A-Z'
Per convertire le maiuscole in minuscole, è sufficiente cambiare la posizione dei set.
Rimuovi tutti i caratteri non numerici
Il seguente comando rimuove tutti i caratteri non numerici:
echo "my phone is 123-456-7890" | tr -cd
sta per tutti i caratteri delle cifre e usando l'opzione
-c
, il comando rimuove tutti i caratteri non cifre. L'output sarà simile al seguente:
Inserisci ogni parola in una nuova riga
Per inserire ogni parola in una nuova riga, dobbiamo abbinare tutti i caratteri non alfanumerici e sostituirli con una nuova riga:
echo 'GNU is an operating system' | tr -cs '' '\n'
Rimuovi le righe vuote
Per eliminare le righe vuote è sufficiente premere i caratteri ripetitivi della nuova riga:
tr -s '\n' < file.txt > new_file.txt
Nel comando sopra stiamo usando il simbolo di reindirizzamento
<
per passare il contenuto di
file.txt
al comando
tr
. Il reindirizzamento
>
scrive l'output del comando in
new_file.txt
.
Stampa le directory
$PATH
su una riga separata
La variabile ambientale
$PATH
è un elenco di directory delimitato da due punti che indica alla shell quali directory cercare i file eseguibili quando si digita un comando.
Per stampare ogni directory su una riga separata dobbiamo abbinare i due punti (:) e sostituirlo con la nuova riga:
echo $PATH | tr ':' '\n'
/usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin
Conclusione
tr
è un comando per tradurre o eliminare caratteri.
Sebbene molto utile,
tr
può funzionare solo con caratteri singoli. Per una corrispondenza più complessa dei modelli e la manipolazione delle stringhe, è necessario utilizzare
sed
o
awk
.
Comando Eco in Linux con esempi

Il comando echo è uno dei comandi più basilari e usati di frequente in Linux. Gli argomenti passati a echo vengono stampati sull'output standard.
Comando Curl in Linux con esempi

Curl è un'utilità della riga di comando per il trasferimento di dati da o verso un server progettato per funzionare senza l'interazione dell'utente. In questo tutorial, ti mostreremo come utilizzare lo strumento arricciatura attraverso esempi pratici e spiegazioni dettagliate delle opzioni di arricciatura più comuni.
Comando di taglio Linux con esempi

Cut è un'utilità della riga di comando che consente di tagliare parti di linee da file specificati o dati di piping e stampare il risultato sull'output standard. In questo tutorial, ti mostreremo come utilizzare il comando di taglio di Linux attraverso esempi pratici e spiegazioni dettagliate delle opzioni di taglio più comuni.