Introduction
Dans ce laboratoire, nous allons explorer la commande tr sous Linux, un utilitaire polyvalent permettant de transformer du texte au niveau des caractères. La commande tr, abréviation de "translate" (traduire), est largement utilisée pour des tâches telles que la conversion de casse, la suppression de caractères spécifiques et le nettoyage de données de base. À la fin de ce laboratoire, vous serez capable d'utiliser tr pour divers scénarios de manipulation de texte. Ce laboratoire est conçu pour les débutants ; ne vous inquiétez donc pas si vous découvrez les commandes Linux, nous vous guiderons pas à pas.
Comprendre les bases de tr
Commençons par comprendre la syntaxe de base de la commande tr :
tr [OPTION]... SET1 [SET2]
La commande tr lit le texte depuis l'entrée standard (stdin), le transforme selon les options et les ensembles de caractères spécifiés, puis écrit le résultat sur la sortie standard (stdout).
Commençons par un exemple simple. Nous allons créer un fichier nommé greeting.txt contenant un message de salutation, puis utiliser tr pour convertir toutes les lettres minuscules en majuscules.
Tout d'abord, créez le fichier :
echo "hello, world" > ~/project/greeting.txt
Astuces : Vous pouvez copier et coller les commandes de création de fichiers dans le terminal pour créer les fichiers correctement.
Cette commande crée un nouveau fichier nommé greeting.txt dans votre répertoire de projet (~/project/) avec le contenu "hello, world".
Maintenant, utilisons tr pour convertir toutes les lettres minuscules en majuscules :
cat ~/project/greeting.txt | tr 'a-z' 'A-Z'
Vous devriez voir le résultat suivant :
HELLO, WORLD
Analysons cette commande :
cat ~/project/greeting.txt: Lit le contenu du fichier.|: Il s'agit d'un tube (pipe). Il prend la sortie de la commande située à sa gauche et l'envoie en entrée à la commande située à sa droite.tr 'a-z' 'A-Z': C'est notre commandetr. Elle traduit chaque caractère du premier ensemble ('a-z', qui représente toutes les lettres minuscules) par le caractère correspondant dans le second ensemble ('A-Z', qui représente toutes les lettres majuscules).
Notez que cette commande ne modifie pas le fichier original. Si vous souhaitez enregistrer le texte transformé, vous devrez rediriger la sortie vers un nouveau fichier.
Supprimer des caractères avec tr
La commande tr peut également supprimer des caractères spécifiques de l'entrée. Cela est particulièrement utile lorsque vous devez nettoyer du texte en supprimant des caractères indésirables. Créons un fichier contenant de la ponctuation, puis supprimons-la.
Tout d'abord, créez un fichier avec de la ponctuation :
echo "Hello, World! How are you?" > ~/project/punctuated.txt
Astuces : Vous pouvez copier et coller les commandes de création de fichiers dans le terminal pour créer les fichiers correctement.
Maintenant, utilisons tr pour supprimer toute la ponctuation :
cat ~/project/punctuated.txt | tr -d '[:punct:]'
Vous devriez voir :
Hello World How are you
Analysons cette commande :
cat ~/project/punctuated.txt: Lit le contenu du fichier.|: Envoie la sortie vers la commandetr.tr -d '[:punct:]':- L'option
-dindique àtrde supprimer les caractères spécifiés. [:punct:]est une classe de caractères qui représente tous les signes de ponctuation. Les classes de caractères sont des ensembles prédéfinis qui facilitent la spécification de groupes de caractères.
- L'option
Cette commande supprime tous les caractères de ponctuation du texte, ne laissant que les lettres, les chiffres et les espaces.
Traduire plusieurs caractères
Explorons maintenant une traduction plus complexe. Nous allons créer un fichier contenant du texte encodé et utiliser tr pour le décoder. Cet exemple montre comment tr peut être utilisé pour un chiffrement et un déchiffrement simples.
Tout d'abord, créez un fichier avec du texte encodé :
echo "Uijt jt b tfdsfu nfttbhf." > ~/project/encoded.txt
Astuces : Vous pouvez copier et coller les commandes de création de fichiers dans le terminal pour créer les fichiers correctement.
Maintenant, décodons-le :
cat ~/project/encoded.txt | tr 'b-zaB-ZA' 'a-zA-Z'
Vous devriez voir :
This is a secret message.
Analysons cette commande :
cat ~/project/encoded.txt: Lit le contenu du fichier encodé.|: Envoie la sortie vers la commandetr.tr 'b-zaB-ZA' 'a-zA-Z':- Le premier ensemble
b-zaB-ZAcombine deux alphabets décalés :b-za: lettres minuscules de b à z, suivies de aB-ZA: lettres majuscules de B à Z, suivies de A
- Ensemble, ils couvrent chaque lettre qui doit être décalée d'une position vers l'arrière.
- Le second ensemble
a-zA-Zest : a à z en minuscules, suivis de A à Z en majuscules. - Cela crée une correspondance où chaque lettre du premier ensemble est remplacée par la lettre correspondante du second ensemble :
- b (1er du premier ensemble) → a (1er du second ensemble)
- c (2e du premier ensemble) → b (2e du second ensemble)
- ...
- a (26e du premier ensemble) → z (26e du second ensemble)
- B (27e du premier ensemble) → A (27e du second ensemble)
- ...
- A (52e du premier ensemble) → Z (52e du second ensemble)
- Cela décale efficacement chaque lettre de l'entrée d'une position vers l'arrière dans l'alphabet, tant pour les minuscules que pour les majuscules, ce qui décode correctement le message.
- Le premier ensemble
Ce type de substitution est une forme très simple de chiffrement appelée chiffre de César. Bien qu'il ne soit pas sécurisé pour un usage réel, c'est un excellent exemple de la façon dont tr peut être utilisé pour une substitution caractère par caractère.
Utiliser les classes de caractères avec tr
La commande tr prend en charge diverses classes de caractères, qui sont des ensembles prédéfinis de caractères. Elles peuvent être très utiles pour des transformations de texte plus complexes. Utilisons-en quelques-unes dans un scénario pratique.
Tout d'abord, créez un fichier avec un contenu mixte :
echo "User123 logged in at 09:45 AM on 2023-08-15" > ~/project/log_entry.txt
Astuces : Vous pouvez copier et coller les commandes de création de fichiers dans le terminal pour créer les fichiers correctement.
Maintenant, extrayons uniquement les chiffres de cette entrée de journal :
cat ~/project/log_entry.txt | tr -cd '[:digit:]'
Vous devriez voir :
12309452023815
Analysons cette commande :
cat ~/project/log_entry.txt: Lit le contenu du fichier journal.|: Envoie la sortie vers la commandetr.tr -cd '[:digit:]':- L'option
-ccomplète l'ensemble (signifie "tout ce qui n'est pas dans cet ensemble"). - L'option
-dsupprime les caractères spécifiés. [:digit:]est une classe de caractères qui représente tous les chiffres (0-9).- Ensemble,
-cd '[:digit:]'signifie "supprimer tous les caractères qui ne sont pas des chiffres".
- L'option
Cette commande est utile pour extraire des données numériques à partir de texte mixte, ce qui peut être utile pour l'analyse de journaux ou les tâches de nettoyage de données.
Condenser les répétitions avec tr
La commande tr peut également "condenser" (squeeze) les caractères répétés en une seule occurrence. C'est utile pour nettoyer des données comportant des répétitions inutiles. Créons un fichier avec des caractères répétés, puis nettoyons-le.
Tout d'abord, créez un fichier avec des espaces répétés :
echo "This is a test with extra spaces." > ~/project/spaced.txt
Astuces : Vous pouvez copier et coller les commandes de création de fichiers dans le terminal pour créer les fichiers correctement.
Maintenant, utilisons tr pour condenser les espaces répétés :
cat ~/project/spaced.txt | tr -s ' '
Vous devriez voir :
This is a test with extra spaces.
Analysons cette commande :
cat ~/project/spaced.txt: Lit le contenu du fichier avec des espaces supplémentaires.|: Envoie la sortie vers la commandetr.tr -s ' ':- L'option
-scondense les répétitions du caractère spécifié en une seule occurrence. ' 'spécifie que nous voulons condenser les caractères d'espace.
- L'option
Cette commande est particulièrement utile lorsque vous traitez des données mal formatées ou lorsque vous devez normaliser les espaces blancs dans un fichier texte.
Résumé
Dans ce laboratoire, nous avons exploré la commande polyvalente tr sous Linux. Nous avons appris à :
- Convertir la casse du texte
- Supprimer des caractères spécifiques
- Traduire plusieurs caractères
- Utiliser des classes de caractères
- Condenser les caractères répétés
La commande tr est un outil puissant pour la manipulation de texte. Voici quelques options supplémentaires que nous n'avons pas détaillées :
-c: Compléter l'ensemble de caractères dans string1, c'est-à-dire opérer sur tous les caractères qui ne sont pas dans string1-t: Tronquer string1 à la longueur de string2
Pour des tâches de traitement de texte plus avancées, vous pourriez explorer d'autres commandes comme sed et awk dans de futurs laboratoires.



