Administrateur Linux - Commande tr

Voici la syntaxe pour tr. Cette commande traduit ou supprime des caractères.

tr [OPTION] SET1 [SET2]

Voici les commutateurs et classes de caractères couramment utilisés avec tr .

Commander action
-ré Effacer
-s Squeeze texte répété dans SET1 avec une seule occurrence dans SET2
[: alnum:] Caractères alphanumériques
[:alpha:] Toutes les lettres
[:chiffre:] Tous les chiffres
[:Vide:] Tous les espaces blancs horizontaux
[:espace:] Tous les espaces blancs horizontaux ou verticaux
[:graphique:] Tous les caractères imprimables, sans les espaces
[:impression:] Tous les caractères imprimables, y compris les espaces
[: punct:] Tous les caractères de ponctuation
[:inférieur:] Tous les caractères minuscules
[:plus haut:] Tous les caractères majuscules

tr est couramment utilisé pour traduire ou supprimer des caractères dans une chaîne. Considérez tr comme une alternative plus simple à la commande de substitution de sed . Lecture depuis stdin par rapport à un fichier.

Quand on pense qu'il faut aller avec "use sed " ou "use tr ", il vaut mieux aller avec une philosophie simple. Si une opération est simple dans tr ; utilise le. Cependant, une fois que vous commencez à penser à utiliser tr de manière récursive, il est préférable d'utiliser la commande de substitution de sed .

En général, tr remplacera [SET1] par des caractères dans [SET2] à moins que-dcommutateur est utilisé. Ensuite, les caractères du flux dans [SET1] seront supprimés.

Utilisation de tr sur notre fichier names.txt pour transformer tous les caractères minuscules en majuscules -

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

Transformons le caractère ":" en onglet -

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

Et si vous vouliez enregistrer les résultats? Assez facile en utilisant la redirection.

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

Utilisons le -s ou option de compression sur du texte mal formaté -

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