Transformation de caractères : tr
La commande tr permet d'appliquer un traitement sur certains caractères d'un flux de données : suppression, substitutions ... Cette commande exploite uniquement les données arrivant sur l'entrée standard.
Syntaxe
tr [options] ensemble1 [ensemble2]
Principale option :
[-d caractères] : La liste des caractères qui doivent être supprimés du flux de données.
Substitution de caractères
Deux ensembles de caractères doivent être spécifiés. Chaque ensemble comporte le même nombre de caractères. Tout caractère de ensemble1 trouvé dans le flux de données est substitué par le caractère de même position situé dans ensemble2.
Exemples
La chaine abcd est traitée : chaque caractère b est remplacé par 2 et chaque caractère d est remplacé par 4.
$ echo abcd | tr bd 24
a2c4
$
Il est possible d'utiliser la notion d'intervalles de caractères en utilisant des crochets. Ici chaque minuscule est remplacée par une majuscule correspondante :
$ echo abcd | tr "[a-z]" "[A-Z]"
ABCD
$
Pour traiter un fichier, il faut utiliser la redirection :
$ cat fic1
ceci est un test
$ tr "[a-z]" "[A-Z]" < fic1
CECI EST UN TEST
$
Suppression de caractères
L'option -d permet de supprimer certains caractères du flux de données.
Exemples
Transformation d'un fichier au format DOS (fin de lignes "\r\n") en un format UNIX ("\n"). Retrait du caractère "\r" :
$ od -c fic100
0000000 c e c i e s t u n t e s t
0000020 \r \n
0000022
$ tr -d '\r' < fic100 > fic101
$ od -c fic101
0000000 c e c i e s t u n t e s t
0000020 \n
0000021
$
En ajoutant l'option -c à l'option -d, la commande supprime tous les caractères non présents dans la liste passée en argument :
$ echo "Linux Pratique HS N°26 – Février/Mars 2013 – En kiosque" | tr -dc a-zA-Z; echo
LinuxPratiqueHSNFvrierMarsEnkiosque
La dernière commande echo permet uniquement d'afficher un retour à la ligne.
Commentaires
Hana (non vérifié)
lun, 01/10/2018 - 00:30
Permalien
Comment faire pour afficher les carateres caches en utilisant tr
Bonjour, comment faire alors dans l'autre sens. Genre tu as un fichier texte plein d'espace et tu veux faire apparaître les caractères invisibles via la commande tr ?
j'ai un fichier texte avec des caractères caches et je n'arrive pas a les afficher. Merci
ronan
lun, 01/10/2018 - 09:48
Permalien
Bonjour
La commande tr n'est pas faite pour ça.
La commande tr permet de transposer des caractères (remplacer, substituer)
Pour afficher des caractères (caractères spéciaux en l'occurence), la commande od avec l'option -c permet de le faire.
Les retours à la ligne seront affichés avec '\n', les espaces avec ' ', les tabulations avec '\t'
Ajouter un commentaire