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]#