La commande tr sous Linux et UNIX est un utilitaire de ligne de commande permettant de traduire ou de supprimer des caractères.
Avec AWK, cat, sed, c’est une commande de base disponible sur la plupart des distributions Linux pour traiter et manipuler les textes.
Elle prend en charge une gamme de transformations, y compris les majuscules en minuscules, la compression de caractères répétés, la suppression de caractères spécifiques et la recherche et le remplacement de base. Il peut être utilisé avec des pipes UNIX pour prendre en charge une traduction plus complexe.
Dans ce tutoriel je vous montre comment utiliser la commande TR avec des exemples.
Table des matières
- 1 Comment utiliser la commande TR
- 2 La commande TR : utilisations et exemples
- 2.1 Comment convertir les minuscules en majuscules
- 2.2 Comment convertir les espaces blancs en tabulations
- 2.3 Comment convertir les virgules en point virgules
- 2.4 Comment écrire le $PATH dans des lignes séparés
- 2.5 Comment supprimer une répétition de caractères à l’aide de -s
- 2.6 Comment supprimer tous les chiffres ou espaces
- 2.7 Comment capturer les chiffres d’un texte
- 2.8 Comment supprimer toutes les lignes blanches d’un fichier
- 2.9 Comment mettre un retour à la ligne après chaque mot
- 3 Liens
Comment utiliser la commande TR
TR est une commande utilisé pour traduire, convertir et/ou supprimer des caractères de l’entrée standard, écriture sur la sortie standard.
La syntaxe est la suivante :
tr [OPTION] SET1 [SET2]
tr fonctionne avec un texte en entrée que l’on peut par exemple fournir avec la commande echo ou la commande cat :
echo texte|tr [OPTION] SET1 [SET2]
cat fichier|tr [OPTION] SET1 [SET2]
Mais on peut aussi spécifier le fichier directement comme ceci :
tr [OPTION] SET1 [SET2] fichier.txt
Les SET sont spécifiés sous forme de chaînes de caractères, chiffres ou séquences de jeux (voir plus bas).
tr accepte deux ensembles de caractères, généralement de même longueur.
Puis la commande remplace les caractères des premiers ensembles par les caractères correspondants du deuxième ensemble.
Par exemple, ci-dessous, tr va remplacer les lettre i par un a, les lettres t par un m et ainsi de suite si l’on fournit un ensemble de caractères plus étendu.
echo "tilekil.cot"|tr it am
malekal.com
La commande est sensible à la casse et donc ci-dessous, la première lettre T n’est pas remplacée par le m :
echo "Tilekil.cot"|tr it am
Talekal.com
Mais on peut aussi utiliser des séquences de jeux comme :
SETS | DESCRIPTION |
[CHAR*REPEAT] | REPEAT copies de CHAR, REPEAT octal si commençant par 0 |
[:alnum:] | Toutes les lettres et chiffres |
[:alpha:] | Toutes les lettres |
[:blank:] | Tous les espaces horizontaux |
[:cntrl:] | Tous les caractères de contrôle |
[:digit:] | Tous les chiffres |
[:graph:] | Tous les caractères imprimables, sans compter l’espace |
[:lower:] | Toutes les lettres minuscules |
[:print:] | Tous les caractères imprimables, y compris l’espace |
[:punct:] | Tous les caractères de ponctuations |
[:space:] | Tous les espaces horizontaux ou verticaux |
[:upper:] | Toutes les lettres majuscules |
[:xdigit:] | Tous les chiffres hexadécimaux |
[=CHAR=] | Tous les caractères équivalents à CHAR |
\t | Les tabulations |
\n | Les lignes blanches |
\v | La tabulation verticale |
Enfin la commande accepte quelques options dont voici la liste :
OPTIONS | DESCRIPTION |
-c | Complète l’ensemble de caractères de la chaîne, c’est-à-dire que les opérations s’appliquent aux caractères qui ne font pas partie de l’ensemble donné |
-d | Supprimer les caractères du premier ensemble de la sortie. |
-s | Remplacer les caractères répétés répertoriés dans l’ensemble 1 par une seule occurrence |
-t | Tronquer set1 |
La commande TR : utilisations et exemples
Comment convertir les minuscules en majuscules
Dans cet exemple, nous souhaitons remplacer tous les caractères en minuscules par des caractères en majuscules.
Pour cela, on utilise la commande tr en spécifiant une expression régulière avec toutes les minuscules en SET1 et les caractères en majuscules en sortie.
echo "bienvenue sur malekal.com"| tr '[a-z]' '[A-Z]'
BIENVENUE SUR MALEKAL.COM
Comment convertir les espaces blancs en tabulations
Dans cette autre exemple, on remplace tous les espaces par des tabulations à l’aide de la commande tr.
Pour y parvenir, on utilise [:space:] en SET1 pour cibler tous les espaces que l’on remplace par des tabulations à l’aide de \t.
echo "Bienvenue sur malekal.com"| tr [:space:] '\t'
Bienvenue sur malekal.com
Comment convertir les virgules en point virgules
Quand on manipule des fichiers CSV, on peut avoir besoin de modifier le séparateur.
Par exemple pour remplacer les virgules par des points virgules :
echo "Le, séparateur, est, une, virgule"|tr ',' ';'
Le; séparateur; est; une; virgule
Comment écrire le $PATH dans des lignes séparés
La variable d’environnement $PATH est une liste de répertoires délimités par des deux-points qui indique au shell les répertoires dans lesquels rechercher les fichiers exécutables lorsque vous tapez une commande.
On peut utilise la commande tr pour remplacer le caractère : par le caractère nouvelle ligne \n afin d’écrire les répertoires de la variable PATH ligne par ligne :
echo $PATH | tr ':' '\n'
Comment supprimer une répétition de caractères à l’aide de -s
Pour supprimer un caractère qui se répète, on utilise l’option -s.
Par exemple pour retirer tous les espaces consécutifs :
echo "Bienvenue sur malekal.com"| tr -s '[:space:]'
Bienvenue sur malekal.com
Comment supprimer tous les chiffres ou espaces
Pour supprimer tous les chiffres d’un texte, utilisez l’option -d et le JEU [:digit] :
echo "Mon ID est 5456556" | tr -d [:digit:]
Mon ID est
Pour supprimer tous les espaces d’un texte :
echo "Bienvenue sur malekal.com"| tr -d '[:space:]'
Bienvenuesurmalekal.com
Comment capturer les chiffres d’un texte
A l’inverse, si vous souhaitez capturer que les chiffres, utilisez l’option -cd.
L’option -c permettant la négation :
echo "Mon ID est 5456556" | tr -cd [:digit:]
5456556
Comment supprimer toutes les lignes blanches d’un fichier
tr vous permet aussi de supprimer les lignes blanches d’un fichier.
Pour cela, on utilise l’option -s pour cibler les lignes blanches (\n).
On utilise aussi le symbole de redirection < pour transmettre le contenu fichier.txt à la commande tr.
Enfin la redirection > écrit la sortie de la commande dans nouveau_fichier.txt
tr -s '\n' < fichier.txt > nouveau_fichier.txt
Comment mettre un retour à la ligne après chaque mot
Dans ce dernier exemple, on insère un retour à la ligne après chaque mot.
Pour cela, on demande à la commande tr de remplacer tous les caractères non alphanumériques par le caractère par le caractère nouvelle ligne \n
echo 'Bienvenue sur malekal.com' | tr -cs '[:alnum:]' '\n'
Bienvenue
sur
malekal
com
Liens
- 12 exemples pour utiliser la commande cat sur Linux
- 6 exemples pour utiliser la commande tail sur Linux
- Comment utiliser la commande less sur Linux avec des exemples
- Utiliser la commande more sur Linux avec des exemples
- La commande cut de Linux : utilisation et exemples
- Comment utiliser la commande AWK avec des exemples
- Commande sed : utilisation et exemples
- 12 exemples de commandes grep sur Linux
- La commande TR : utilisations et exemples
- La commande echo : utilisations et exemples
- La commande sort Linux : utilisations et exemples
- La commande join Linux : utilisations et exemples