Commandes Linux : tr

TR

Installé avec le paquet coreutils
Voir aussi : sed, awk, recode, dos2unix, unix2dos, todos, fromdos et konwert

 

Afficher la version de tr

tr --version

ou

apt-cache policy coreutils

 

Fichier utilisé pour les tests

Lorem ipsum dolor sit (amet), consectetuer adipiscing (elit).
Aenean commodo	ligula eget dolor.
Aenean massa.
Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

 

Remplacer un ensemble de caractères par un autre de même longueur

tr ensemble1 ensemble2 < filename
cat filename | tr ensemble1 ensemble2
echo texte | tr ensemble1 ensemble2

ex :

# tr [abcd] [ABCD] < file.txt

ou

# tr "abcd" "ABCD" < file.txt
Lorem ipsum Dolor sit (Amet), ConseCtetuer ADipisCing (elit).
AeneAn CommoDo	ligulA eget Dolor.
AeneAn mAssA.
Cum soCiis nAtoque penAtiBus et mAgnis Dis pArturient montes, nAsCetur riDiCulus mus.
# tr [a-z] [A-Z] < file.txt

ou

# tr [:lower:] [:upper:] < file.txt
LOREM IPSUM DOLOR SIT (AMET), CONSECTETUER ADIPISCING (ELIT).
AENEAN COMMODO	LIGULA EGET DOLOR.
AENEAN MASSA.
CUM SOCIIS NATOQUE PENATIBUS ET MAGNIS DIS PARTURIENT MONTES, NASCETUR RIDICULUS MUS.
# tr [:upper:] [:lower:] < file.txt | tr [a-z] [48CD3F6H1JK1MN0PQr57UVWXYZ]
10r3M 1P5UM D010r 517 (4M37), C0N53C737U3r 4D1P15C1N6 (3117).
43N34N C0MM0D0	116U14 3637 D010r.
43N34N M4554.
CUM 50C115 N470QU3 P3N4718U5 37 M46N15 D15 P4r7Ur13N7 M0N735, N45C37Ur r1D1CU1U5 MU5.

 

Supprimer des caractères d'un fichier

tr -d ensemble < filename

ex :

# tr -d "\t().," < file.txt
Lorem ipsum dolor sit amet consectetuer adipiscing elit
Aenean commodoligula eget dolor
Aenean massa
Cum sociis natoque penatibus et magnis dis parturient montes nascetur ridiculus mus

Ci-dessus, supression des tabulations, parenthèses, points et virgules.

 

Inverser le résultat d'une suppression (complément)

tr -cd ensemble < filename

ex :

# tr -cd "eEaAiIoOuUYy" < file.txt | wc -c
70

Ci-dessus, retourne le nombre de voyelles du texte.

 

Réduire des caractères répétés

tr -s ensemble < filename

ex :

# echo "(((((111-2-333)))))" | tr -s "()13"
(1-2-3)

Ci-dessus, on réduit à l'unicité les caractères répétés suivants : parenthèses, 1 et 3.

 

Convertir un fichier DOS en fichier Unix

tr -d "\r" < DOSfilename > Unixfilename

ou

tr -d "\015" < DOSfilename > Unixfilename

Equivaut à :
fromdos < dosfilename > unixfilename
dos2unix < dosfilename > unixfilename
konwert lf < dosfilename > unixfilename
ex :

# od -c DOSfile.txt
0000000   L   o   r   e   m       i   p   s   u   m       d   o   l   o
0000020   r       s   i   t       (   a   m   e   t   )   ,       c   o
0000040   n   s   e   c   t   e   t   u   e   r       a   d   i   p   i
0000060   s   c   i   n   g       (   e   l   i   t   )   .  \r  \n   A
0000100   e   n   e   a   n       c   o   m   m   o   d   o  \t   l   i
0000120   g   u   l   a       e   g   e   t       d   o   l   o   r   .
0000140  \r  \n   A   e   n   e   a   n       m   a   s   s   a   .  \r
0000160  \n   C   u   m       s   o   c   i   i   s       n   a   t   o
0000200   q   u   e       p   e   n   a   t   i   b   u   s       e   t
0000220       m   a   g   n   i   s       d   i   s       p   a   r   t
0000240   u   r   i   e   n   t       m   o   n   t   e   s   ,       n
0000260   a   s   c   e   t   u   r       r   i   d   i   c   u   l   u
0000300   s       m   u   s   .  \r  \n
0000310
# file DOSfile.txt
DOSfile.txt: ASCII text, with CRLF line terminators
# tr -d "\r" < DOSfile.txt > Unixfile.txt
# od -c Unixfile.txt
0000000   L   o   r   e   m       i   p   s   u   m       d   o   l   o
0000020   r       s   i   t       (   a   m   e   t   )   ,       c   o
0000040   n   s   e   c   t   e   t   u   e   r       a   d   i   p   i
0000060   s   c   i   n   g       (   e   l   i   t   )   .  \n   A   e
0000100   n   e   a   n       c   o   m   m   o   d   o  \t   l   i   g
0000120   u   l   a       e   g   e   t       d   o   l   o   r   .  \n
0000140   A   e   n   e   a   n       m   a   s   s   a   .  \n   C   u
0000160   m       s   o   c   i   i   s       n   a   t   o   q   u   e
0000200       p   e   n   a   t   i   b   u   s       e   t       m   a
0000220   g   n   i   s       d   i   s       p   a   r   t   u   r   i
0000240   e   n   t       m   o   n   t   e   s   ,       n   a   s   c
0000260   e   t   u   r       r   i   d   i   c   u   l   u   s       m
0000300   u   s   .  \n
0000304
# file Unixfile.txt
Unixfile.txt: ASCII text

Voir aussi les commandes fromdos et dos2unix.
Pour la converse, c'est-à-dire convertir un fichier Unix en fichier DOS, voir les commandes recode, todos et unix2dos.

 

Les classes prédéfinis de caractères

[:alnum:] toutes les lettres et les chiffres
[:alpha:] toutes les lettres
[:lower:] toutes les lettres minuscules
[:upper:] toutes les lettres majuscule
[:digit:] tous les chiffres
[:graph:] tous les caractères imprimables ( [:alnum:] + [:punc:] ), sauf les blancs ( [:space:] )
[:print:] tous les caractères imprimables, y compris les blancs horizontaux ( [:alnum:] + [:punc:] + [:blank:] )
[:blank:] tous les blancs horizontaux (espaces et tabulations \t)
[:space:] tous les blancs verticaux (saut de ligne \n, retour chariot \r, tabulation verticale \v) et horizontaux (espaces et tabulations \t)
[:punct:] tous les caractères de ponctuation (" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~.)
[:xdigit:] tous les chiffres hexadécimaux
[:cntrl:] tous les caractères de contrôle (donc y compris \r, \n, \t et \v)
Fermer le menu
%d blogueurs aiment cette page :