Amministratore Linux: comando tr

Di seguito è riportata la sintassi per tr. Questo comando traduce o elimina i caratteri.

tr [OPTION] SET1 [SET2]

Di seguito sono riportati gli interruttori e le classi di caratteri comunemente usati con tr .

Comando Azione
-d Elimina
-S Comprimere il testo ripetuto in SET1 con una singola occorrenza in SET2
[: alnum:] Caratteri alfanumerici
[:alfa:] Tutte le lettere
[: digit:] Tutte le cifre
[: blank:] Tutti gli spazi bianchi orizzontali
[:spazio:] Tutti gli spazi bianchi orizzontali o verticali
[:grafico:] Tutti i caratteri stampabili, esclusi gli spazi
[:Stampa:] Tutti i caratteri stampabili, inclusi gli spazi
[: punct:] Tutti i caratteri di punteggiatura
[:inferiore:] Tutti i caratteri minuscoli
[:superiore:] Tutti i caratteri maiuscoli

tr è comunemente usato per tradurre o eliminare caratteri in una stringa. Pensa a tr come un'alternativa più semplice al comando substitute di sed . Lettura da stdin rispetto a un file.

Quando si pensa che si dovrebbe andare con "use sed " o "use tr ", è meglio seguire la filosofia "keep it simple". Se un'operazione è semplice in tr ; usalo. Tuttavia, una volta che inizi a pensare di usare tr in modo ricorsivo, è meglio usare il comando di sostituzione di sed .

In genere, tr sostituirà [SET1] con i caratteri in [SET2] a meno che il-dviene utilizzato l'interruttore. Quindi, i caratteri dal flusso in [SET1] verranno eliminati.

Utilizzando tr sul nostro file names.txt per trasformare tutti i caratteri minuscoli in maiuscole -

[[email protected] Documents]# tr [:lower:] [:upper:]  < names.txt  
TED:DANIEL:101 
JENNY:COLON:608 
DANA:MAXWELL:602 
MARIAN:LITTLE:903 
BOBBIE:CHAPMAN:403 
NICOLAS:SINGLETON:203 
DALE:BARTON:901 
AARON:DENNIS:305 
SANTOS:ANDREWS:504 
JACQUELINE:NEAL:102 
[[email protected] Documents]#

Trasformiamo di nuovo il carattere ":" in una scheda -

[[email protected] Documents]# tr [:]  [\\t] < names.txt  
Ted Daniel  101 
Jenny   Colon     608 
Dana    Maxwell    602 
Marian      Little  903 
Bobbie      Chapman 403 
Nicolas Singleton   203 
Dale    Barton  901 
Aaron   Dennis  305 
Santos      Andrews    504 
Jacqueline  Neal    102 
[[email protected] Documents]#

E se volessi salvare i risultati? Abbastanza facile usando il reindirizzamento.

[[email protected] Documents]# tr [:]  [\\t]  < names.txt >> tabbedNames.txt
[[email protected] Documents]# cat tabbedNames.txt  
Ted Daniel  101 
Jenny   Colon   608 
Dana    Maxwell 602 
Marian  Little  903 
Bobbie  Chapman 403 
Nicolas Singleton   203 
[[email protected] Documents]#

Usiamo il file -s o spremere l'opzione su testo formattato male -

[[email protected] Documents]# cat lines.txt 
line 1 
line     2 
line  3 
line                      4 
line      5 
[[email protected] Documents]# tr -s [:blank:] ' ' < lines.txt >> linesFormat.txt 
[[email protected] Documents]# cat linesFormat.txt  
line 1 
line 2 
line 3 
line 4 
line 5 
[[email protected] Documents]#