Articles

Utiliser la commande tr sous Linux pour jouer avec des caractères

Posted by admin

la commande tr sous Linux traduit un ensemble de caractères en un autre. Il peut remplacer un caractère ou un ensemble de caractères par une autre caractère ou ensemble de caractères. tr lit l’entrée standard et affiche le résultat sur la sortie standard. L’entrée peut également être donnée dans un fichier ou en utilisant la commande echo.

tr est court pour traduire.,

le format standard pour La tr commande est :

$ tr 

sur la Base de l’option(s) spécifié le tr commande remplace le jeu de caractères dans « set 1” par « 2”.

remplacement des caractères

Pour remplacer les caractères à l’aide de la commande tr, mentionnez simplement les caractères à remplacer dans le 1er jeu et les caractères à mettre à leur place après le remplacement dans le 2ème jeu.

$ tr 'a' '1'

Cette commande va attendre l’entrée STDIN., Après avoir obtenu l’entrée, la sortie à l’écran apparaîtra avec toutes les instances de ‘a’ remplacées par ‘1’.

Utilisation de l’écho avec les tr de la commande

L’exemple ci-dessus se lit d’entrée à partir de STDIN. La commande Echo peut fournir une entrée avec la commande tr. Utilisez L’opérateur Pipe (|) pour exécuter les commandes ensemble.,

$ echo "apples and bananas" | tr 'a' '1'

la Prise d’entrée à partir d’un fichier

tr pouvez également son entrée à partir d’un fichier. Ceci est utile lorsque la traduction doit être effectuée sur une collection volumineuse de texte. L’opérateur Redirection (<) est utilisé pour donner une entrée à partir d’un fichier.

$ tr 'a' '1' < input.txt

entrée.txt contient le même texte que l’exemple ci-dessus.,

pour enregistrer le texte dans un fichier, utilisez l’opérateur redirection (>) pour rediriger la sortie vers un fichier.

$ tr 'a' '1' < input.txt > output.txt

changer la casse du texte avec la commande tr

l’une des utilisations les plus courantes de la commande tr est de traduire du texte de minuscules en majuscules ou vice-versa.

comme tr fonctionne sur des ensembles de caractères, Nous pouvons explicitement mentionner l’ensemble des caractères minuscules comme set 1 et l’ensemble des caractères majuscules comme set 2 pour faire le changement.,

$ echo "apples and bananas" | tr a-z A-Z

Jeu de a-z représente l’ensemble des lettres minuscules, et l’ensemble A-Z représente l’ensemble des lettres majuscules.

une Autre façon de faire est la même :

$ echo "apples and bananas" | tr 

Ici, représente l’ensemble des alphabets minuscules et représente l’ensemble des majuscules de l’alphabet.

la Suppression de caractères avec tr

tr a la possibilité de supprimer un ensemble de caractères du texte. Ceci est réalisé en utilisant tr avec la commande-D.,

$ echo "apples and bananas" | tr -d 'n'

Cette commande permettra d’éliminer toutes les occurrences de  » n  » dans le texte.

Pour supprimer les occurrences multiples des personnages, de mentionner tous les caractères apostrophe.

$ echo "apples and bananas" | tr -d 'na'

Cette commande va supprimer les occurrences de ‘n’ et ‘a’

Depuis tr fonctionne au niveau du caractère, tous les événements de  » n  » et  » a  » sont supprimés., Il est facile de se tromper et de penser que la commande ne supprimera que les occurrences de ‘na’ survenant dans cette séquence. Cependant, ce n’est pas le cas.

presser plusieurs occurrences en une seule

presser plusieurs occurrences en une seule peut être utile pour compresser le texte. Il est souvent utilisé pour supprimer des instances d’espace multiple entre les lignes.

option-s est utilisé avec tr presser.,

$ echo "apples and bananas" | tr -s 'p'

Plusieurs occurrences de ‘p’ à la pomme ont été réduits à un seul événement.

$ echo "apples and bananas" | tr -s 'na' '1'

La sortie de cette commande est équivalente à celle d’abord de remplacer les occurrences de caractères ‘n’ et ‘a‘ à ‘1’, suivie par un resserrement de l’opération. Pour comparer, regardez la deuxième commande dans la sortie., Le résultat de la deuxième commande est une simple substitution de caractères.

pressons tous les 1 dans la sortie de la deuxième commande pour voir si nous obtenons la même sortie que la première.

Nous obtenons le même résultat que la première commande dans la sortie.,

Pour supprimer consécutives des espaces dans le texte :

$ echo "apples and bananas" | tr -s " " 

Sinon peut être utilisé à la place de ” « 

$ echo "apples and bananas" | tr -s 

l’Extraction de chiffres hors texte

Pour réaliser les opérations où seulement un ensemble particulier de caractères doivent être préservés. Il est préférable d’utiliser l’option-c. -c est utilisé pour compléter l’ensemble.

complément d’un ensemble signifie tout autre chose que ce qui est dans cet ensemble.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n' 

en Mentionnant ‘\n’ (saut de ligne) est important parce que sinon, la sortie n’a pas un retour à la ligne et se mélange avec la ligne suivante dans le terminal. Une autre raison de ne pas ignorer les sauts de ligne lors de la suppression de caractères est que votre fichier peut avoir plusieurs chiffres sur plusieurs lignes. Si le caractère de saut de ligne est supprimé, tous les chiffres sans espace.,

sans le ‘\n’

l’Extraction de mots du texte

Ce processus est à l’exact opposé de celle ci-dessus. Ici, nous allons ignorer les chiffres et nous concentrer uniquement sur les mots composés de lettres.

$ echo " Home : 011 1234 4321" | tr -d 

Dans cet exemple, nous avons simplement supprimé tous les chiffres de texte.

Une façon plus contrôlée de faire la même chose serait par complément.,

$ echo " Home : 011 1234 4321" | tr -cd ,'\n'

représente l’ensemble des alphabets. Pensez-y comme une collection de deux ensembles, inférieur et supérieur.

 = + 

compter le nombre d’occurrences de mots

compter combien de fois un mot apparaît dans un texte peut être utile pour construire des histogrammes. Il est également très utile dans la construction de modèles probabilistes pour la détection de spam par e-mail.

Tout d’abord, créons un fichier avec quelques mots récurrents.,

Parfois, il peut être utile d’afficher chaque mot du texte dans une nouvelle ligne.

$ tr -cs "" "\n" < input.txt
La liste est longue. La sortie a été coupé court à l’ajustement

Pour obtenir le nombre d’occurrence de chaque mot que vous utilisez:

$ tr -cs "" "\n" < input.txt | sort | uniq -c

Tri est utilisé pour trier la liste lexicographiquement., uniq-c compte les occurrences individuelles de chaque mot et génère le résultat sous forme de liste de mots avec un nombre.

Conclusion

la commande tr est utile pour effectuer des traductions basées sur des caractères. Lorsqu’elle est combinée avec d’autres commandes comme sort ou uniq, la commande tr peut s’avérer très puissante. En savoir plus sur la commande tr sur sa page de manuel. Lors de l’application de transformations sur une ligne entière, la commande sed peut être utilisée.

Leave A Comment