tr est un utilitaire UNIX pour traduire, supprimer ou compresser des caractères répétés. Il lira depuis STDIN et écrira dans STDOUT.
tr signifie traduire.
Syntaxe
La syntaxe de la commande tr est :
$ tr [OPTION] SET1 [SET2]
Traduction
Si SET1 et SET2 sont spécifiés et que '-d' OPTION n'est pas spécifié, alors la commande tr remplacera chaque caractère dans SET1 par chaque caractère dans la même position dans SET2.
1. Convertir les minuscules en majuscules
La commande tr suivante est utilisée pour convertir les minuscules en majuscules
$ tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ thegeekstuff THEGEEKSTUFF
La commande suivante convertira également les minuscules en majuscules
$ tr [:lower:] [:upper:] thegeekstuff THEGEEKSTUFF
Vous pouvez également utiliser des plages dans tr. La commande suivante utilise des plages pour convertir les minuscules en majuscules.
$ tr a-z A-Z thegeekstuff THEGEEKSTUFF
2. Traduisez les accolades en parenthèses
Vous pouvez également traduire depuis et vers un fichier. Dans cet exemple, nous traduirons les accolades dans un fichier avec des parenthèses.
$ tr '{}' '()' < inputfile > outputfile
La commande ci-dessus lira chaque caractère de "inputfile", traduira s'il s'agit d'une accolade et écrira la sortie dans "outputfile".
3. Traduire l'espace blanc en onglets
La commande suivante traduira tous les espaces blancs en onglets
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
4. Réduisez la répétition des caractères à l'aide de -s
Dans l'exemple 3, nous voyons comment traduire l'espace avec des tabulations. Mais s'il y a deux espaces supplémentaires présents en continu, la commande précédente traduira chaque espace en une tabulation comme suit.
$ echo "This is for testing" | tr [:space:] '\t' This is for testing
Nous pouvons utiliser l'option -s pour réduire la répétition des caractères.
$ echo "This is for testing" | tr -s [:space:] '\t' This is for testing
De même, vous pouvez convertir plusieurs espaces continus avec un seul espace
$ echo "This is for testing" | tr -s [:space:] ' ' This is for testing
5. Supprimer les caractères spécifiés à l'aide de l'option -d
tr peut également être utilisé pour supprimer des caractères particuliers à l'aide de l'option -d.
$ echo "the geek stuff" | tr -d 't' he geek suff
Pour supprimer tous les chiffres de la chaîne, utilisez
$ echo "my username is 432234" | tr -d [:digit:] my username is
De plus, si vous souhaitez supprimer des lignes du fichier, vous pouvez utiliser la commande sed d.
6. Complétez les ensembles en utilisant l'option -c
Vous pouvez compléter le SET1 en utilisant l'option -c. Par exemple, pour supprimer tous les caractères sauf les chiffres, vous pouvez utiliser ce qui suit.
$ echo "my username is 432234" | tr -cd [:digit:] 432234
7. Supprimer tous les caractères non imprimables d'un fichier
La commande suivante peut être utilisée pour supprimer tous les caractères non imprimables d'un fichier.
$ tr -cd [:print:] < file.txt
8. Joindre toutes les lignes d'un fichier en une seule ligne
La commande ci-dessous traduira toutes les nouvelles lignes en espaces et créera le résultat sur une seule ligne.
$ tr -s '\n' ' ' < file.txt