GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Tr sous Linux expliquée avec des exemples

La vraie puissance de Linux est qu'il existe de nombreux programmes/utilitaires créés pour nous faciliter la vie. Lorsque vous écrivez beaucoup de scripts shell dans votre environnement, cet ensemble de programmes est pratique, où vous utiliserez ces programmes pour manipuler votre entrée ou votre sortie dans vos scripts. Un de ces utilitaires est tr , qui signifie traduire . Comme son nom l'indique, la commande tr est utilisée pour traduire, compresser et supprimer des caractères de l'entrée standard, en écrivant sur la sortie standard des systèmes d'exploitation Linux et Unix.

Dans cet article, nous apprendrons l'utilisation de la commande tr avec des exemples pratiques. À la fin de ce guide, vous serez à l'aise avec l'utilisation de la commande tr et vous saurez dans quel scénario l'utilisation de cette commande serait bénéfique.

syntaxe de la commande tr et aide

Pour connaître la syntaxe et la liste des arguments pris en charge par la commande tr, reportez-vous à la page de manuel ou utilisez --help drapeau avec tr commande.

$ man tr
$ tr --help

Le tr la commande accepte deux arguments sous la forme de SET1 et SET2SET1 seront des caractères d'entrée qui seront traduits par des caractères dans SET2 . Lorsque certains drapeaux sont passés à la commande tr, SET2 peut éventuellement être utilisé.

tr [OPTION]… SET1 [SET2]

Exemple 1 - Traduire avec la commande tr

Vous trouverez ci-dessous un exemple simple d'utilisation du tr commande. Le tr la commande est canalisée avec le echo commande et "ost" en minuscules est converti en majuscule "OST" .

La conversion ici se fera en fonction de la position des caractères dans deux ensembles. Le premier caractère de SET1 sera remplacé par le premier caractère de SET2 (o->O ), de même pour tous les caractères (s->S ,t->T ).

$ echo "ostechnix" | tr "ost" "OST" 
OSTechnix

Suggestion de lecture :

  • La commande Bash Echo expliquée avec des exemples sous Linux

Exemple 2 - Jeux de caractères et caractères spéciaux

Le tr La commande offre l'utilisation de jeux de caractères, ce qui rend la conversion très facile. Le tr La commande peut également interpréter des caractères spéciaux comme (\n ,\t ,\v ) qui peut être traduit avec différents caractères.

Voyons comment utiliser le jeu de caractères. Dans l'exemple ci-dessous, j'ai des chaînes, des entiers et des caractères de ponctuation. les caractères de ponctuation sont remplacés par des points (. ) en utilisant "[:punct:]" jeu de caractères.

$ echo "Ubuntu 20.04 #$%^" | tr "[:punct:]" "."

Exemple 3 - Conversion de casse

Lorsque vous travaillez avec des chaînes, vous souhaiterez peut-être changer la casse de la chaîne de bas en haut ou vice versa. Utilisation du tr commande, vous pouvez effectuer la conversion de casse de différentes manières.

Dans le premier cas, vous pouvez taper a à z dans les ensembles 1 et 2.

$ echo "ostechnix" | tr "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
OSTECHNIX

Veuillez noter qu'il ne s'agit pas d'un moyen préféré.

Au lieu de saisir tous les caractères, vous pouvez également utiliser des plages (par exemple, a-z , A-Z ).

$ echo "ostechnix" | tr "a-z" "A-Z" # Minuscule à majuscule 
OSTECHNIX
$ echo "OSTECHNIX" | tr "A-Z" "a-z" # majuscule à minuscule 
ostechnix

Les classes de caractères peuvent également être utilisées à la place des deux méthodes ci-dessus.

$ echo "OSTECHNIX" | tr "[:supérieur :]" "[:inférieur :]" 
ostechnix
$ echo "ostechnix" | tr "[:inférieur :]" "[:supérieur :]" 
OSTECHNIX

Exemple 4 - Supprimer des caractères

Il existe un ensemble d'arguments optionnels que tr prend en charge pour effectuer diverses actions.

Un de ces drapeaux est "-d ou --delete " qui supprimera les caractères donnés dans SET1.

Ci-dessous se trouve l'entrée où j'ai trois adresses IP avec des espaces blancs dans chaque ligne et des onglets (2) dans la troisième ligne. Maintenant en utilisant le -d flag vous pouvez nettoyer les espaces blancs.

192.168. 1. 12 192.168. 1. 13 192.168. 1. 14

Exécutez la commande ci-dessous qui supprimera tous les espaces blancs. Un point important à noter ici est que les onglets ne sont pas supprimés, mais seuls les espaces sont supprimés.

$ tr -d " "   

Si vous souhaitez supprimer à la fois l'espace et les tabulations (espaces blancs horizontaux), vous pouvez utiliser le "[:blank:]" jeu de caractères.

$ tr -d "[:blank:]"   

Vous pouvez également utiliser le "[:space:]" jeu de caractères pour supprimer les espaces blancs horizontaux et verticaux.

$ tr -d "[:space:]"   

Exemple 5 - Répétitions Squeeze

Lorsque le drapeau "-s ou --squeeze-repeats " est utilisé, les caractères répétés donnés dans SET1 seront remplacés par une seule occurrence du caractère. Dans l'exemple ci-dessous, vous pouvez voir que j'ai utilisé 4 égal à (= ) signe. Maintenant -s remplacera 4 (= ) avec 1 (= ).

$ echo "IP de production ====192.168.1.10" | tr -s "="IP de production =192.168.1.10

Vous trouverez ci-dessous un autre exemple où les caractères de nouvelle ligne (\n ) sont pressés.

$ cat tr_test.txt | tr -s "\n"

Exemple 6 - Complément

Lorsque le -c flag est utilisé, il fera une traduction inverse pour l'ensemble donné. Dans l'exemple ci-dessous, le tr traduira tous les alphabets en "*" en temps normal. Mais quand -c est utilisé, l'opération sera inversée. À part les alphabets, tous les autres caractères seront remplacés par "*" .

$ echo "Le numéro d'employé est 1267890" | tr -c "[:alpha:]" "*"

Vous pouvez combiner cela avec d'autres drapeaux pour obtenir certains résultats. Par exemple lorsque vous combinez avec le -d flag, il effectuera une opération de suppression inverse.

$ echo "Le numéro d'employé est 1267890" | tr -cd "[:digit:]"

Remarque : Dans l'exemple ci-dessus, vous pouvez voir que le caractère de nouvelle ligne est également traduit/supprimé. Lorsque vous utilisez cette méthode, notez ce point et continuez.

Exemple 7 - Rediriger la sortie

Dans toutes les sections précédentes, nous avons lu l'entrée du fichier et effectué un traitement avec le tr commande et la sortie est envoyée au terminal. Si vous souhaitez rediriger la sortie vers un fichier au lieu d'un terminal, utilisez l'opérateur de redirection.

$ tr -s "\n"  new_tr_test.txt

$ cat new_tr_test.txt

Lire connexe :

  • La redirection bash expliquée avec des exemples

Conclusion

Dans cet article, je vous ai expliqué comment utiliser le tr commande. Sous Linux, il existe toujours plusieurs façons d'obtenir la même chose. Tout ce que nous avons montré dans cet article peut également être réalisé avec d'autres programmes comme sed , awk , etc. Mais connaître ces commandes et les différentes manières vous aidera à décider de la bonne situation pour utiliser la bonne commande/programme.


Linux
  1. Commande Linux wc avec exemples

  2. Commande d'arrêt Linux expliquée avec des exemples

  3. Commande Linux nslookup expliquée avec des exemples

  4. Commande Linux Traceroute, expliquée avec des exemples

  5. Commande JQ sous Linux avec exemples

La commande Bash Echo expliquée avec des exemples sous Linux

Commande IP Linux avec exemples

w Commande expliquée avec des exemples sous Linux

La commande Linux Cat expliquée avec des exemples

Explication de la commande Linux tee (avec exemples)

La commande Linux csplit expliquée (avec des exemples)