GNU/Linux >> Linux Esercitazione >  >> Linux

Comando Linux tr con esempi

Introduzione

Il tr command è un'utilità della riga di comando di Linux che traduce o elimina i caratteri dall'input standard (stdin ) e scrive il risultato nello standard output (stdout ). Usa tr per eseguire diverse trasformazioni del testo, inclusa la conversione di maiuscole e minuscole, la compressione o l'eliminazione di caratteri e la sostituzione di base del testo.

Dal tr non è in grado di leggere un file direttamente e restituisce i risultati in output standard, viene spesso utilizzato con le pipe (| ) e reindirizza (>> ) per consentire un'elaborazione più complessa del contenuto dei file.

In questo tutorial imparerai a usare Linux tr comando.

Prerequisiti

  • Un sistema che esegue Linux.
  • Accesso al terminale (Ctrl + Alt + T ).

Sintassi del comando Linux tr

Il tr di base la sintassi del comando è:

tr [options] SET1 [SET2]

Opzioni

Esecuzione di tr senza alcuna opzione sostituisce ciascuno dei caratteri specificati in SET1 con i caratteri di SET2 che hanno la stessa posizione.

Ad esempio:

Nell'esempio sopra, l'output del comando echo viene reindirizzato al tr comando, sostituendo ogni istanza di e con o .

IMPOSTA

SET s sono stringhe di caratteri. Il comando accetta le seguenti sequenze interpretate per la corrispondenza dei caratteri:

Sequenza Interpretazione
\NNN Caratteri con il NNN valore ottale (da 1 a 3 cifre ottali).
\\ Barra rovesciata.
\a Un campanello udibile.
\b Backspace.
\f Feed modulo.
\n Carattere di nuova riga.
\r Carattere di ritorno.
\t Scheda Orizzontale.
\v Scheda verticale.
CHAR1-CHAR2 Tutti i caratteri da CHAR1 a CHAR2 in ordine crescente.
[CHAR*] Copie CHAR* in SET2 fino alla lunghezza di SET1 .
[CHAR*REPEAT] Ripeti le copie di CHAR . Ripete l'ottale se si inizia con 0.
[:alnum:] Tutte le lettere e le cifre.
[:alpha:] Tutte le lettere.
[:blank:] Spazi bianchi orizzontali.
[:cntrl:] Tutti i caratteri di controllo.
[:digit:] Tutte le cifre.
[:graph:] Caratteri stampabili, escluso lo spazio.
[:lower:] Tutti i caratteri minuscoli.
[:print:] Caratteri stampabili, incluso lo spazio.
[:punct:] Tutti i caratteri di punteggiatura.
[:space:] Caratteri spazi vuoti orizzontali o verticali.
[:upper:] Tutte le lettere maiuscole.
[:xdigit:] Cifre esadecimali.
[=CHAR=] Tutti i caratteri equivalgono a CHAR .

Nota: Un altro ottimo editor di flussi di testo Unix è SED. Lo strumento ti consente di cercare, sostituire, aggiungere ed eliminare righe in un file di testo senza aprirlo in un editor di testo.

Opzioni comando Linux tr

Le opzioni forniscono ulteriori azioni di trasformazione del personaggio. Le opzioni disponibili sono:

Opzione Descrizione
-C Completa i caratteri in SET1 , inclusi tutti i caratteri nell'output tranne quelli specificati.
-c Completa i valori in SET1 . Le operazioni si applicano ai personaggi che non sono nel set specificato.
-d Elimina i caratteri dal SET1  input.
-s Comprime i caratteri ripetuti specificati nell'ultimo operando (o SET1 o SET2 ) e li sostituisce con una singola occorrenza di quel carattere.
-t Tronca SET1 alla lunghezza di SET2 .
-u Assicura che qualsiasi output sia senza buffer.
--help Visualizza il file della guida con tutte le opzioni disponibili.
--version Visualizza le informazioni sulla versione del programma.

Esempi di Linux tr

Di seguito sono riportati esempi di utilizzo del tr comando con diverse opzioni per trasformare il testo di input.

Cambia carattere maiuscolo

Esistono tre modi per modificare le maiuscole e minuscole dei caratteri con tr :

1. Specifica i caratteri esatti che desideri convertire

Specifica quali caratteri dell'input desideri convertire. Questa opzione cambia il carattere maiuscolo o interi caratteri, sostituendo quelli di SET1 con quelli di SET2 .

Ad esempio:

2. Specifica l'intervallo di caratteri per la conversione

La specifica di un intervallo consente tr per modificare il caso di qualsiasi carattere all'interno dell'intervallo specificato. L'esempio seguente mostra come convertire i caratteri maiuscoli in minuscoli:

Premi CTRL+C per uscire dalla modalità di immissione.

3. Specifica le sequenze interpretate

Abbina e converti i caratteri specificando sequenze interpretate. Ad esempio, la sequenza per i caratteri minuscoli è [:lower:] e la sequenza per i caratteri maiuscoli è [:upper:] . Specificando le due sequenze si istruisce tr per abbinare e convertire il carattere maiuscolo:

L'esempio sopra mostra come tr converte i caratteri maiuscoli in minuscoli.

Rimuovi i caratteri ripetuti

Il -s l'opzione comprime i caratteri ripetuti in una singola istanza di quel carattere. L'opzione è particolarmente utile quando si convertono gli spazi bianchi in tabulazioni o caratteri di nuova riga e il testo di input contiene più spazi vuoti continui.

Ad esempio, l'input seguente contiene più spazi bianchi. La loro conversione in schede senza spremere fornisce il seguente risultato:

Per evitare più tabulazioni e spazi bianchi nell'output, specifica il -s opzione:

Elimina caratteri

Rimuovi caratteri specifici utilizzando il -d opzione. Nell'esempio seguente, tr elimina ogni istanza di e carattere:

Facoltativamente, specificare un gruppo di caratteri utilizzando sequenze interpretate. Ad esempio, rimuovi tutte le cifre specificando il [:digit:] sequenza:

Insiemi di complementi

Usa il -c opzione per completare i caratteri in SET1 . Nell'esempio seguente, rimuoviamo tutti i caratteri tranne le cifre:

Tutti i caratteri non nel set specificato (in questo caso, tutto tranne le cifre) vengono rimossi.

Rimuovi i caratteri di nuova riga

Riduci lo spazio occupato da un testo convertendo i caratteri di nuova riga in spazi. Il contenuto viene quindi visualizzato in un'unica riga.

Nell'esempio seguente, utilizziamo il comando cat per aprire un file di testo e inviarlo tramite pipe a tr per rimuovere i caratteri di nuova riga:

Reindirizza in tr

Un'alternativa al piping consiste nell'utilizzare il reindirizzamento per inserire i contenuti in tr . Inoltre, puoi utilizzare il reindirizzamento per salvare il tr output in un file.

L'esempio seguente mostra come rimuovere tutti i caratteri non stampabili da un file il cui contenuto viene reindirizzato in tr :

Tronca insieme

Per impostazione predefinita, se SET1 è più lungo di SET2 , tr riutilizza l'ultimo carattere di SET2 durante l'elaborazione dell'input. Ad esempio:

Da SET1 è più lungo di SET2 , tr riutilizza l'ultimo carattere di SET2 , in questo caso, 2 .

Usa il -t opzione per troncare SET1 alla lunghezza di SET2 :

Il -t l'opzione indica tr per troncare SET1 alla lunghezza di SET2 e sostituisce solo i primi due caratteri.

Rimuovi i segni diacritici

Usa il [=CHAR=] sequenza in modo che corrisponda a tutti i caratteri equivalenti a quello specificato. Ad esempio, la sequenza può identificare e rimuovere i segni diacritici dai caratteri.

Stampa ogni parola separatamente

Stampa il contenuto di un file riga per riga utilizzando il -c opzione e sostituisci i caratteri non alfanumerici con un carattere di nuova riga.

Nota: Se preferisci usare Bash, guarda come leggere un file riga per riga.

L'output viene ora visualizzato una parola alla volta.

Salva l'output su file

Da tr non cambia direttamente il contenuto di un file, inoltre non salva le modifiche apportate. Salva l'output in un file reindirizzandolo come mostrato nell'esempio seguente:

Apertura del nuovo file con cat mostra che le modifiche sono state salvate.

Conclusione

Questo tutorial ha mostrato come utilizzare il tr comando e le sue opzioni disponibili per varie trasformazioni del testo. Dai un'occhiata ad altre utilità di testo Linux nelle nostre guide per il comando sort e meno pager terminale, oppure guarda i migliori editor di testo Linux.


Linux
  1. Comando wc Linux con esempi

  2. Comando di ordinamento Linux con esempi

  3. Comando Tee Linux con esempi

  4. Comando testa di Linux con esempi

  5. Comando JQ in Linux con esempi

Comando CD Linux con esempi

Comando Linux watch con esempi

Attendi comando in Linux con esempi

Comando di esportazione Linux con esempi

Riavvia il comando in Linux con esempi

Comando IP Linux con esempi