GNU/Linux >> Linux Esercitazione >  >> Linux

Il comando Tr in Linux spiegato con esempi

Il vero potere di Linux è che ci sono molti programmi/utilità creati per semplificarci la vita. Quando scrivi molti script di shell nel tuo ambiente, questo insieme di programmi è utile, in cui utilizzerai questi programmi per manipolare l'input o l'output negli script. Una di queste utilità è tr , che sta per traduci . Come suggerisce il nome, il comando tr viene utilizzato per tradurre, spremere ed eliminare i caratteri dallo standard input, scrivendo nello standard output nei sistemi operativi simili a Linux e Unix.

In questo articolo, impareremo l'utilizzo del comando tr con esempi pratici. Alla fine di questa guida, ti sentirai a tuo agio nell'usare il comando tr e scoprirai in quale scenario sarebbe utile utilizzare questo comando.

sintassi del comando tr e guida

Per conoscere la sintassi e l'elenco degli argomenti supportati dal comando tr, fare riferimento alla pagina man o utilizzare --help segnala con tr comando.

$ man tr
$ tr --help

Il tr comando accetta due argomenti sotto forma di SET1 e SET2 dove SET1 verranno inseriti i caratteri che verranno tradotti in caratteri in SET2 . Quando alcuni flag vengono passati al comando tr, è possibile utilizzare SET2 opzionalmente.

tr [OPTION]… SET1 [SET2]

Esempio 1 - Traduci con il comando tr

Di seguito è riportato un semplice esempio di come utilizzare tr comando. Il tr il comando viene inviato tramite pipe con echo comando e "ost" minuscolo viene convertito in maiuscolo "OST" .

La conversione qui avverrà in base alla posizione dei caratteri in due set. Il primo carattere in SET1 sarà sostituito dal primo carattere in SET2 (o->O ), allo stesso modo per tutti i caratteri (s->S ,t->T ).

$ echo "ostechnix" | tr "ost" "OST"
OSTechnix

Lettura consigliata:

  • Comando Bash Echo spiegato con esempi in Linux

Esempio 2 - Set di caratteri e caratteri speciali

Il tr Il comando offre l'uso di set di caratteri il che rende la conversione molto semplice. Il tr il comando può anche interpretare caratteri speciali come (\n ,\t ,\v ) che può essere tradotto con caratteri diversi.

Diamo un'occhiata a come utilizzare il set di caratteri. Nell'esempio seguente, ho stringhe, numeri interi e caratteri di punteggiatura. i caratteri di punteggiatura sono sostituiti da un punto (. ) utilizzando "[:punct:]" set di caratteri.

$ echo "Ubuntu 20.04 #$%^" | tr "[:punct:]" "."

Esempio 3 - Conversione di casi

Quando si lavora con le stringhe, potresti voler cambiare il caso della stringa da inferiore a superiore o viceversa. Usando il tr comando, puoi eseguire la conversione delle maiuscole in diversi modi.

Nel primo modo, puoi digitare a a z sia nel set 1 che nel set 2.

$ echo "ostechnix" | tr "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
OSTECHNIX

Tieni presente che questo non è un modo preferito.

Invece di digitare tutti i caratteri, puoi anche utilizzare intervalli (ad esempio a-z , A-Z ).

$ echo "ostechnix" | tr "a-z" "A-Z" # Lower to Upper case
OSTECHNIX
$ echo "OSTECHNIX" | tr "A-Z" "a-z" # Upper to Lower case
ostechnix

Le classi di caratteri possono essere utilizzate anche al posto dei due metodi precedenti.

$ echo "OSTECHNIX" | tr "[:upper:]" "[:lower:]"
ostechnix
$ echo "ostechnix" | tr "[:lower:]" "[:upper:]"
OSTECHNIX

Esempio 4 - Elimina caratteri

Ci sono una serie di argomenti opzionali che tr supporta per eseguire varie azioni.

Uno di questi flag è "-d o --delete " che cancellerà i caratteri forniti in SET1.

Di seguito è riportato l'input in cui ho tre IP con spazi bianchi in ciascuna riga e schede (2) nella terza riga. Ora usando il -d flag puoi pulire gli spazi bianchi.

  192.168. 1. 12   
  192.168. 1. 13  
        192.168. 1. 14 

Esegui il comando seguente che cancellerà tutti gli spazi bianchi. Un punto importante da notare qui è che le schede non vengono rimosse ma vengono rimossi solo gli spazi bianchi.

$ tr -d " " < tr_test.txt

Se desideri rimuovere sia lo spazio che le tabulazioni (spazi bianchi orizzontali), puoi utilizzare il "[:blank:]" set di caratteri.

$ tr -d "[:blank:]" < tr_test.txt

Puoi anche usare il "[:space:]" set di caratteri per eliminare gli spazi bianchi orizzontali e verticali.

$ tr -d "[:space:]" < tr_test.txt

Esempio 5:ripetizioni di compressione

Quando il flag "-s o --squeeze-repeats " viene utilizzato, i caratteri ripetuti forniti in SET1 verranno sostituiti con una singola occorrenza del carattere. Nell'esempio seguente, puoi vedere che ho usato 4 uguale a (= ) cartello. Ora -s sostituirà 4 (= ) con 1 (= ).

$ echo "Production IP ==== 192.168.1.10" | tr -s "="
Production IP = 192.168.1.10

Di seguito è riportato un altro esempio in cui i caratteri di nuova riga (\n ) vengono compressi.

$ cat tr_test.txt | tr -s "\n"

Esempio 6 - Complemento

Quando il -c flag viene utilizzato, eseguirà una traduzione inversa per il set specificato. Nell'esempio seguente, tr tradurrà tutti gli alfabeti in "*" normalmente. Ma quando -c viene utilizzato, l'operazione verrà invertita. A parte gli alfabeti, tutti gli altri caratteri verranno sostituiti con "*" .

$ echo "Employee Number is 1267890" | tr -c "[:alpha:]" "*"

Puoi combinarlo con altri flag per ottenere determinati risultati. Ad esempio quando si combina con -d flag, eseguirà un'operazione di eliminazione inversa.

$ echo "Employee Number is 1267890" | tr -cd "[:digit:]"

Nota: Dall'esempio sopra, puoi vedere che anche il carattere di nuova riga è tradotto/cancellato. Quando si utilizza questo metodo, tenere presente questo punto e procedere.

Esempio 7 - Reindirizzamento output

In tutte le sezioni precedenti, abbiamo letto l'input dal file e fatto alcune elaborazioni con il tr comando e l'output viene inviato al terminale. Se desideri reindirizzare l'output su un file anziché su un terminale, utilizza l'operatore di reindirizzamento.

$ tr -s "\n" < tr_test.txt > new_tr_test.txt

$ cat new_tr_test.txt

Lettura correlata:

  • Il reindirizzamento di Bash spiegato con esempi

Conclusione

In questo articolo, ti ho spiegato come usare il tr comando. In Linux, ci sono sempre più modi per ottenere la stessa cosa. Tutto ciò che abbiamo mostrato in questo articolo può essere ottenuto anche con altri programmi come sed , awk , ecc. Ma conoscere questi comandi e modi diversi ti aiuterà a decidere la situazione giusta per utilizzare il comando/programma giusto.


Linux
  1. Comando wc Linux con esempi

  2. Comando di spegnimento di Linux spiegato con esempi

  3. Il comando nslookup Linux spiegato con esempi

  4. Comando Traceroute di Linux, spiegato con esempi

  5. Comando JQ in Linux con esempi

Comando Bash Echo spiegato con esempi in Linux

Comando IP Linux con esempi

w Comando spiegato con esempi in Linux

Comando Linux Cat spiegato con esempi

Spiegazione del comando tee di Linux (con esempi)

Spiegazione del comando csplit di Linux (con esempi)