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.txt en tant qu'entrée pour la commande tr.
- 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.