Introduction
La commande tr est un outil puissant de manipulation de texte sous Linux qui permet aux utilisateurs de traduire, supprimer et comprimer des caractères à partir de l'entrée standard. Elle est particulièrement utile pour des tâches telles que la conversion de casse, la suppression de caractères spécifiques ou la normalisation du formatage dans les fichiers texte.
Dans ce labo (LabEx), vous apprendrez à utiliser la commande tr pour diverses tâches de manipulation de texte. Vous explorerez trois fonctionnalités principales : la traduction de caractères d'un ensemble à un autre, la suppression de caractères indésirables et la compression de caractères répétés. Ces compétences sont essentielles pour un traitement efficace du texte et un nettoyage des données dans les environnements Linux.
À la fin de ce labo (LabEx), vous serez en mesure d'utiliser avec confiance la commande tr pour transformer les données textuelles selon vos besoins, rendant vos tâches de traitement de texte plus efficaces et précises.
Comprendre la commande de base tr
La commande tr sous Linux est utilisée pour traduire, supprimer ou comprimer des caractères à partir de l'entrée standard, et écrit le résultat sur la sortie standard. Dans cette étape, vous apprendrez la syntaxe de base de la commande tr et comment l'utiliser pour convertir les lettres minuscules en majuscules.
La syntaxe de base de tr
La syntaxe de base de la commande tr est la suivante :
tr [OPTION]... SET1 [SET2]
Où :
SET1est l'ensemble de caractères à traduire ou à supprimerSET2est l'ensemble de caractères qui remplaceront ceux deSET1
Création d'un fichier texte d'exemple
Commençons par créer un fichier texte d'exemple pour pratiquer. Ouvrez un terminal dans la machine virtuelle LabEx et exécutez la commande suivante :
echo 'industrial revolution' > ~/project/sample.txt
Cette commande crée un nouveau fichier nommé sample.txt dans le répertoire /home/labex/project avec le texte "industrial revolution".
Conversion des minuscules en majuscules
Maintenant, utilisons la commande tr pour convertir toutes les lettres minuscules en majuscules :
tr 'a-z' 'A-Z' < ~/project/sample.txt
Lorsque vous exécutez cette commande, vous devriez voir la sortie suivante :
INDUSTRIAL REVOLUTION
Comprendre la commande
Analysons ce qui s'est passé :
tr 'a-z' 'A-Z'indique à la commande de remplacer chaque lettre minuscule (a-z) par sa lettre majuscule correspondante (A-Z).- Le symbole
<redirige le contenu de~/project/sample.txten tant qu'entrée pour la commandetr. - Le résultat est affiché sur le terminal mais n'est pas enregistré dans le fichier.
Enregistrement de la sortie dans un nouveau fichier
Si vous souhaitez enregistrer le texte transformé dans un nouveau fichier, vous pouvez utiliser la redirection de sortie :
tr 'a-z' 'A-Z' < ~/project/sample.txt > ~/project/uppercase_sample.txt
Pour vérifier le contenu du nouveau fichier, utilisez la commande cat :
cat ~/project/uppercase_sample.txt
Vous devriez voir :
INDUSTRIAL REVOLUTION
Maintenant, vous avez appris avec succès à utiliser la fonctionnalité de base de la commande tr pour transformer le texte de minuscules en majuscules.
Supprimer des caractères avec tr
L'une des fonctionnalités puissantes de la commande tr est sa capacité à supprimer des caractères spécifiques d'un texte. Cette fonctionnalité est particulièrement utile lors du nettoyage de fichiers de données ou de la suppression de caractères indésirables dans des flux de texte.
L'option de suppression dans tr
Pour supprimer des caractères en utilisant la commande tr, vous utilisez l'option -d suivie de l'ensemble de caractères que vous souhaitez supprimer :
tr -d SET1
Où SET1 est l'ensemble de caractères que vous souhaitez supprimer.
Création d'un fichier texte d'exemple contenant des nombres
Créons un fichier d'exemple contenant du texte avec des nombres que nous pouvons utiliser pour pratiquer :
echo 'Factory 1 Output: 100 units, Factory 2 Output: 150 units' > ~/project/factory_output.txt
Cette commande crée un fichier nommé factory_output.txt dans le répertoire /home/labex/project avec un texte qui inclut des nombres.
Suppression des chiffres du texte
Maintenant, utilisons la commande tr avec l'option -d pour supprimer tous les chiffres du texte :
tr -d '0-9' < ~/project/factory_output.txt
Lorsque vous exécutez cette commande, vous devriez voir la sortie suivante :
Factory Output: units, Factory Output: units
Notez que tous les nombres (1, 2, 100, 150) ont été supprimés du texte.
Comprendre la commande
Analysons ce qui s'est passé :
tr -d '0-9'indique à la commande de supprimer tous les caractères dans la plage 0-9 (qui sont tous des chiffres).- Le symbole
<redirige le contenu de~/project/factory_output.txten tant qu'entrée pour la commandetr. - Le résultat est affiché sur le terminal mais n'est pas enregistré dans le fichier.
Enregistrement de la sortie dans un nouveau fichier
Si vous souhaitez enregistrer la sortie sans chiffres dans un nouveau fichier, vous pouvez utiliser la redirection de sortie :
tr -d '0-9' < ~/project/factory_output.txt > ~/project/no_digits_output.txt
Pour vérifier le contenu du nouveau fichier, utilisez la commande cat :
cat ~/project/no_digits_output.txt
Vous devriez voir :
Factory Output: units, Factory Output: units
Suppression de plusieurs ensembles de caractères
Vous pouvez également supprimer plusieurs types de caractères en une seule commande. Par exemple, supprimons à la fois les chiffres et la ponctuation :
tr -d '0-9:,;' < ~/project/factory_output.txt
Cela supprimera tous les chiffres (0-9) ainsi que les deux-points, les virgules et les points-virgules du texte.
Maintenant, vous savez comment utiliser la commande tr pour supprimer des caractères spécifiques d'un texte, ce qui est une compétence précieuse pour le nettoyage de données et le traitement de texte sous Linux.
Réduire les caractères avec tr
Une autre fonctionnalité utile de la commande tr est sa capacité à « compresser » les caractères répétés, en remplaçant les occurrences consécutives du même caractère par une seule instance. Cette fonctionnalité est particulièrement précieuse lorsqu'il s'agit de texte contenant des espaces blancs excessifs ou d'autres caractères répétés.
L'option de compression dans tr
Pour compresser les caractères répétés en utilisant la commande tr, vous utilisez l'option -s suivie de l'ensemble de caractères que vous souhaitez compresser :
tr -s SET1
Où SET1 est l'ensemble de caractères que vous souhaitez compresser.
Création d'un fichier texte d'exemple avec des espaces blancs excessifs
Créons un fichier d'exemple avec des espaces blancs excessifs que nous pouvons utiliser pour pratiquer :
echo 'Error: Too much whitespace.' > ~/project/whitespace.txt
Cette commande crée un fichier nommé whitespace.txt dans le répertoire /home/labex/project avec un texte qui inclut plusieurs espaces consécutifs.
Compression des espaces dans le texte
Maintenant, utilisons la commande tr avec l'option -s pour compresser plusieurs espaces en un seul espace :
tr -s ' ' < ~/project/whitespace.txt
Lorsque vous exécutez cette commande, vous devriez voir la sortie suivante :
Error: Too much whitespace.
Notez que les multiples espaces entre les mots ont été réduits à un seul espace, rendant le texte plus lisible.
Comprendre la commande
Analysons ce qui s'est passé :
tr -s ' 'indique à la commande de compresser les occurrences répétées d'un caractère espace en un seul espace.- Le symbole
<redirige le contenu de~/project/whitespace.txten tant qu'entrée pour la commandetr. - Le résultat est affiché sur le terminal mais n'est pas enregistré dans le fichier.
Enregistrement de la sortie dans un nouveau fichier
Si vous souhaitez enregistrer le texte avec les espaces compressés dans un nouveau fichier, vous pouvez utiliser la redirection de sortie :
tr -s ' ' < ~/project/whitespace.txt > ~/project/clean_whitespace.txt
Pour vérifier le contenu du nouveau fichier, utilisez la commande cat :
cat ~/project/clean_whitespace.txt
Vous devriez voir :
Error: Too much whitespace.
Combinaison d'opérations tr
La commande tr vous permet de combiner des opérations. Par exemple, vous pouvez à la fois traduire des caractères et les compresser en une seule commande :
tr 'a-z' 'A-Z' -s ' ' < ~/project/whitespace.txt
Cette commande convertira toutes les lettres minuscules en majuscules et compressera également plusieurs espaces en un seul espace.
Création d'un exemple plus complexe
Créons un exemple plus complexe pour pratiquer :
echo 'log entry: error code 404 not found' > ~/project/complex.txt
Maintenant, utilisons tr pour convertir toutes les lettres en majuscules et compresser les espaces :
tr 'a-z' 'A-Z' -s ' ' < ~/project/complex.txt > ~/project/processed_complex.txt
Pour voir le résultat :
cat ~/project/processed_complex.txt
Vous devriez voir :
LOG ENTRY: ERROR CODE 404 NOT FOUND
Maintenant, vous avez appris à utiliser la commande tr pour compresser les caractères répétés dans un texte. Cela, combiné avec les capacités de traduction et de suppression que vous avez apprises précédemment, vous donne un outil puissant pour la manipulation de texte sous Linux.
Combinaison d'opérations tr pour une transformation avancée de texte
Dans cette étape, vous allez apprendre à combiner plusieurs opérations tr pour effectuer des transformations de texte plus avancées. La capacité à enchaîner différentes opérations rend tr un outil polyvalent pour les tâches de traitement de texte complexes.
Création d'un fichier de données d'exemple
Créons un fichier de données d'exemple qui contient un mélange de lettres majuscules et minuscules, de nombres et de caractères spéciaux :
echo 'User123: John_Doe@example.com - Last Login: 2023-10-15' > ~/project/user_data.txt
Cette commande crée un nouveau fichier nommé user_data.txt dans le répertoire /home/labex/project avec un enregistrement utilisateur d'exemple.
Plusieurs opérations avec des pipes
Une façon d'effectuer plusieurs transformations est d'utiliser des pipes pour enchaîner les commandes tr :
cat ~/project/user_data.txt | tr 'A-Z' 'a-z' | tr -d '0-9' | tr -s ' '
Cette commande va :
- Convertir toutes les lettres majuscules en minuscules
- Supprimer tous les chiffres
- Compresser les espaces consécutifs en un seul espace
La sortie devrait ressembler à :
user: john_doe@example.com - last login: --
Utilisation de tr avec des classes de caractères étendues
La commande tr prend en charge certaines classes de caractères spéciales qui peuvent rendre vos transformations plus concises. Certaines classes de caractères courantes incluent :
[:alnum:]- Toutes les lettres et chiffres[:alpha:]- Toutes les lettres[:digit:]- Tous les chiffres[:lower:]- Toutes les lettres minuscules[:upper:]- Toutes les lettres majuscules[:space:]- Tous les caractères d'espace blanc
Utilisons ces classes de caractères pour transformer nos données utilisateur :
tr '[:upper:]' '[:lower:]' < ~/project/user_data.txt > ~/project/lowercase_user_data.txt
Cette commande convertit toutes les lettres majuscules en minuscules et enregistre le résultat dans un nouveau fichier.
Pour vérifier le contenu du nouveau fichier :
cat ~/project/lowercase_user_data.txt
Vous devriez voir :
user123: john_doe@example.com - last login: 2023-10-15
Création d'un exemple complet
Créons un fichier plus complexe pour pratiquer :
echo ' LOG ENTRY: Error-404 Page Not Found (HTTP) ' > ~/project/log_entry.txt
Maintenant, effectuons plusieurs transformations d'un coup :
cat ~/project/log_entry.txt | tr '[:upper:]' '[:lower:]' | tr -d '-()' | tr -s ' ' > ~/project/transformed_log.txt
Cette commande va :
- Convertir toutes les lettres majuscules en minuscules
- Supprimer les tirets, les parenthèses et les crochets
- Compresser les espaces consécutifs en un seul espace
Pour voir le résultat :
cat ~/project/transformed_log.txt
Vous devriez voir :
log entry: error404 page not found http
Notez qu'il reste encore des espaces en début et en fin de ligne. Pour les supprimer, nous aurions besoin d'outils supplémentaires comme sed ou awk, qui dépassent le cadre de ce laboratoire.
Maintenant, vous savez comment combiner plusieurs opérations tr pour effectuer des transformations de texte complexes, rendant vos tâches de traitement de texte plus efficaces et plus performantes.
Résumé
Dans ce laboratoire, vous avez appris à utiliser la commande tr, un outil polyvalent pour la manipulation de texte sous Linux. Vous avez exploré ses trois principales fonctionnalités :
Traduction de caractères : Vous avez appris à traduire des caractères d'un ensemble à un autre, par exemple en convertissant les lettres minuscules en majuscules. Cette fonctionnalité est utile pour standardiser les formats de texte et normaliser les données.
Suppression de caractères : Vous avez découvert comment supprimer des caractères spécifiques d'un texte en utilisant l'option
-d. Cette capacité est particulièrement précieuse pour nettoyer les données en supprimant les caractères indésirables.Compression de caractères : Vous avez exploré comment compresser les caractères répétés en une seule instance en utilisant l'option
-s. Cette fonctionnalité est particulièrement utile pour traiter les textes contenant des espaces blancs excessifs.Combinaison d'opérations : Vous avez appris à combiner plusieurs opérations
trpour effectuer des transformations de texte complexes de manière efficace.
Ces compétences constituent une base solide pour le traitement de texte dans les environnements Linux. La commande tr est un outil puissant qui, lorsqu'il est combiné avec d'autres commandes Linux telles que grep, sed et awk, permet une manipulation de texte sophistiquée pour diverses tâches de traitement de données.
En maîtrisant la commande tr, vous avez ajouté un outil essentiel à votre boîte à outils Linux qui vous aidera à gérer les données textuelles plus efficacement et précisément dans vos futurs projets.



