Commandes Linux

Commande Linux tr

Commande Linux tr
Sous Linux, « tr » est un outil intégré qui peut « traduire, compresser et/ou supprimer des caractères de l'entrée standard, en écrivant sur la sortie standard » (à partir de la page de manuel).

De la description officielle, il est facile de comprendre la valeur de cet outil. Linux propose une grande collection d'outils intégrés. Il y en a des spéciaux qui sont super utiles pour la manipulation de texte. Nous en avons déjà couvert un certain nombre, comme Vim, Nano, awk, sed et d'autres outils.

Ceux qui travaillent régulièrement avec des textes, "tr" va certainement être vraiment, vraiment utile. Cet article illustrera l'utilisation la plus courante de "tr" avec suffisamment d'exemples.

Remarque : le didacticiel va utiliser une tonne de fichiers factices avec un contenu aléatoire. Toutes les chaînes aléatoires sont générées par Aléatoire.organisation.

Emplacement

quel tr

Ceci est le chemin complet de l'outil de commande "tr".

Utilisation de base

Pour utiliser l'outil "tr", vous devez utiliser la structure de commande suivante.

tr [RÉG1] [RÉG2]

Il existe différentes options et façons de manipuler les textes en utilisant "tr". Dans un premier temps, regardons ce fichier de démonstration.

démonstration de chat.SMS

Tous les caractères sont en minuscule, à droite? Transformons-les en majuscules!

démonstration de chat.txt | tr [:inférieur:] [:supérieur:]

Ici, le premier paramètre de "tr" indique d'effectuer une traduction sur tous les caractères minuscules de l'entrée. La deuxième partie est révélatrice de les transformer en majuscules à la sortie.

Maintenant, faisons le contraire.

démo de chat1.SMS

démo de chat1.txt | tr [:supérieur:] [:inférieur:]

Il y a aussi une autre façon d'effectuer cette même tâche. Regardons ça.

démonstration de chat.txt | tr [a-z] [A-Z]

Maintenant, au lieu de dire à "tr" de traduire les majuscules en minuscules ou les minuscules en majuscules, nous avons dit d'identifier les entrées correspondant à la plage "a" à "z" et de les traduire en leur équivalent de la plage "A" à "Z".

Cette méthode similaire peut également être utilisée pour traduire les majuscules en minuscules.

démo de chat1.txt | tr [A-Z] [a-z]

Jouer avec les nombres

Nous avons vu comment traduire les majuscules en minuscules, à droite? Il est temps de jouer avec les chiffres.

En utilisant la commande suivante, nous pouvons facilement traduire tous les chiffres (0-9) en leurs caractères équivalents!

chat demo_digit.SMS

chat demo_digit.txt | tr [0-9] [a-z]

Impressionnant! Et les majuscules?

chat demo_digit.txt | tr [0-9] [A-Z]

Simple, mais intéressant, à droite? Nous pouvons également transformer des caractères en chiffres!

démo de chat_lowercase.SMS

démo de chat_lowercase.txt | tr [a-z] [0-9]

Uh oh, on dirait que les choses se sont effondrées? Eh bien, nous ne pouvons utiliser que 'a' à 'j' pour représenter des chiffres uniques. S'il y a un caractère qui est en dehors de cette limite, "tr" remplacera le caractère par ']'.

Suppression de caractères

Comme le suggère la description officielle, "tr" peut faire plus que simplement traduire des caractères. Dans l'exemple suivant, nous verrons comment utiliser "tr" pour supprimer certains caractères.

chat au hasard.SMS

Maintenant, supprimons tous les numéros du contenu.

chat au hasard.txt | tr -d [0-9]

Ici, le drapeau "-d" indique à "tr" de supprimer et [0-9] dénotant les chiffres à supprimer.

On peut aussi faire ça avec les personnages. La commande suivante conservera tous les nombres mais supprimera tous les caractères.

chat au hasard.txt | tr -d [a-z]

Que diriez-vous de supprimer un seul caractère spécifique du fichier?

démo de chat_lowercase.SMS

démo de chat_lowercase.txt | tr -d 'y'

Il a supprimé toutes les entrées 'y' du fichier.

Presser les caractères répétés

Il y a des moments où un caractère est répété séquentiellement. Si vous êtes confronté à des problèmes aussi ennuyeux, laissez "tr" s'en occuper! En utilisant la commande suivante, vous pouvez presser de telles occurrences. Il conserve essentiellement l'occurrence initiale du caractère et supprime les autres.

Tout d'abord, il est temps de vérifier à quoi ressemble le fichier de démonstration.

chat en double.SMS

Maintenant, passez le contenu à "tr".

chat en double.txt | tr -s [:chiffres:]

Ici, le paramètre « -s » est l'indicateur pour effectuer l'action « squeeze ».

Casser/fusionner des phrases

Regardons le fichier de démonstration.

chauve-souris en double.SMS

Il contient une phrase avec des espaces divisant les mots, à droite? Séparons les mots en nouvelles lignes.

chat en double.txt | tr " " "\n"

Cette commande a remplacé tous les caractères d'espacement par des caractères de nouvelle ligne.

Fusionnons à nouveau la phrase brisée dans une longue phrase.

chauve-souris en double.SMS

chat en double.txt | tr "\n" " "

Traduction de caractères

Tout comme nous avons traduit des caractères auparavant, cette fois, nous ferons la même chose mais avec un seul caractère.

démonstration de chat.SMS

Dans ce fichier, changeons tous les caractères de nouvelle ligne en un point-virgule.

démonstration de chat.txt | tr "\n" ";"

J'ai dû l'enrouler autour de "écho". Sinon, cela créerait une sortie car le dernier caractère de nouvelle ligne serait également traduit en point-virgule.

Il y a une manière différente de changer de personnage. Cependant, celui-ci est plus difficile à contrôler.

chat en double1.SMS

chat en double1.txt | tr -c 'd' 'z'

chat en double1.txt | tr -c 'd' 'z'

Wow! Enveloppons-le autour de « écho » pour mieux comprendre la sortie.

echo $(chat duplicate1.txt | tr -c 'd' 'z')

Que s'est-il passé ici? En utilisant le drapeau "-c", "tr" ne conservera que le caractère cible inchangé. En cas de non-concordance, tout autre caractère sera transformé. Ici, tout caractère autre que 'b' a été remplacé par 'z'.

Traduction de chaînes

"tr" peut également fonctionner avec des chaînes. Effectuons le remplacement de chaîne.

chat en double1.SMS

chat en double1.txt | tr "dupliquer" "pas_dupliquer"

Ma chaîne à remplacer est plus courte que la chaîne à remplacer, elle ne correspondait donc pas.

Jeux de caractères

A présent, vous avez remarqué qu'il existe un certain nombre de jeux de caractères pris en charge par "tr". Bien qu'un certain nombre d'entre eux aient été utilisés dans les exemples ci-dessus, d'autres jeux de caractères sont également très utiles. Voici une liste de toutes les listes de caractères pris en charge.

jeux de caractères POSIX

  • [:chiffre:] : Chiffres 0-9
  • [:alpha:] : Alphabets a-z et A-Z.
  • [:alnum:] : Caractères alphanumériques
  • [:punct:] : Symboles de ponctuation
  • [:space:] : tout caractère d'espacement, par exemple, espace, tabulation, FF, CR, NL, FF, etc.
  • [:upper:] : tous les alphabets majuscules
  • [:lower:] : Tous les alphabets minuscules
  • [:cntrl:] : Tous les caractères de contrôle (NL, CR, EXT, STX, ACK, SO, DC1, DC2, NAK, ETB, ESC, IS1, IS2, DEL etc.)

Jeux de caractères supplémentaires

  • [A-Z] : Tous les alphabets majuscules
  • [a-z] : Tous les alphabets minuscules
  • [0-9] : Tous les chiffres

Dernières pensées

Il y a des tonnes de façons dont toutes ces fonctionnalités de "tr" peuvent profiter aux utilisateurs. Je recommande toujours de consulter toutes les options disponibles et les guides détaillés sur n'importe quel outil Linux à partir de leurs pages de manuel, d'informations et d'aide, car ils peuvent offrir des connaissances plus précieuses.

tr --help

homme tr

infos tr

Prendre plaisir!

Meilleures distributions Linux pour les jeux en 2021
Le système d'exploitation Linux a parcouru un long chemin depuis son apparence originale, simple et basée sur le serveur. Ce système d'exploitation s'...
Comment capturer et diffuser votre session de jeu sur Linux
Dans le passé, jouer à des jeux n'était considéré qu'un passe-temps, mais avec le temps, l'industrie du jeu a connu une croissance énorme en termes de...
Meilleurs jeux à jouer avec le suivi des mains
Oculus Quest a récemment introduit l'idée géniale du suivi manuel sans contrôleurs. Avec un nombre toujours croissant de jeux et d'activités qui exécu...