Comment remplacer des caractères avec la commande `tr` sous Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Ce tutoriel vous guidera tout au long du processus d'utilisation de la commande tr (traduire) sous Linux pour remplacer, supprimer ou traduire des caractères dans des fichiers texte ou dans la sortie de commandes. La commande tr est un outil polyvalent qui vous permet d'effectuer diverses transformations de texte, ce qui en fait un atout précieux dans votre boîte à outils Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/TextProcessingGroup -.-> linux/tr("Character Translating") subgraph Lab Skills linux/tr -.-> lab-415206{{"Comment remplacer des caractères avec la commande `tr` sous Linux"}} end

Comprendre la commande tr

La commande tr, abréviation de "translate" (traduire), est un outil puissant sous Linux qui vous permet de remplacer, supprimer ou réduire des caractères dans une entrée donnée. C'est un outil polyvalent qui peut être utilisé pour diverses tâches de manipulation de texte, ce qui en fait une partie essentielle de la boîte à outils d'un utilisateur Linux.

Qu'est-ce que la commande tr?

La commande tr est un outil standard Unix/Linux utilisé pour traduire ou supprimer des caractères de l'entrée standard (généralement un fichier ou la sortie d'une autre commande) et écrire le résultat sur la sortie standard. Elle peut être utilisée pour effectuer diverses transformations de caractères, telles que :

  • Remplacer un ou plusieurs caractères par d'autres caractères
  • Supprimer des caractères spécifiques
  • Réduire (ou fusionner) les caractères répétés en une seule occurrence

La syntaxe de base de la commande tr est la suivante :

tr [OPTION] SET1 [SET2]

Ici, SET1 et SET2 sont les ensembles de caractères à traduire ou à supprimer. Le paramètre OPTION peut être utilisé pour spécifier un comportement supplémentaire, comme --delete pour supprimer les caractères de SET1 ou --squeeze-repeats pour fusionner les caractères répétés.

Comprendre les ensembles de caractères dans tr

La commande tr opère sur des ensembles de caractères, qui sont définis à l'aide de diverses méthodes :

  • Caractères individuels : Vous pouvez spécifier des caractères individuels, comme a, b ou 1.
  • Plages de caractères : Vous pouvez spécifier une plage de caractères en utilisant l'opérateur tiret (-), comme a-z ou 0-9.
  • Classes de caractères : Vous pouvez utiliser des classes de caractères prédéfinies, comme [:upper:] pour les lettres majuscules, [:lower:] pour les lettres minuscules et [:digit:] pour les chiffres.

Ces ensembles de caractères peuvent être utilisés à la fois dans SET1 et SET2 pour définir respectivement les caractères d'entrée et de sortie.

Exemples pratiques

Explorons quelques exemples pratiques d'utilisation de la commande tr :

  1. Remplacer les lettres minuscules par des majuscules :

    echo "hello, world!" | tr "[:lower:]" "[:upper:]"

    Sortie : HELLO, WORLD!

  2. Supprimer des caractères spécifiques :

    echo "abc123def" | tr -d "1-3"

    Sortie : abcdef

  3. Réduire les caractères répétés :

    echo "hello   world" | tr -s " "

    Sortie : hello world

Ces exemples démontrent la polyvalence de la commande tr et comment elle peut être utilisée pour effectuer diverses tâches de manipulation de texte. Dans la section suivante, nous approfondirons des cas d'utilisation plus avancés et des applications pratiques de la commande tr.

Remplacer des caractères avec tr

Le principal cas d'utilisation de la commande tr est de remplacer des caractères dans une entrée donnée. Cela peut être utile pour diverses tâches de manipulation de texte, telles que le nettoyage de données, la conversion de format et les transformations d'encodage de caractères.

Syntaxe pour remplacer des caractères

La syntaxe de base pour remplacer des caractères à l'aide de la commande tr est la suivante :

tr 'SET1' 'SET2'

Ici, SET1 représente les caractères que vous souhaitez remplacer, et SET2 représente les caractères que vous souhaitez utiliser comme remplacements. La commande tr remplacera chaque caractère de SET1 par le caractère correspondant dans SET2.

Par exemple, pour remplacer toutes les lettres minuscules par leurs équivalents majuscules, vous pouvez utiliser la commande suivante :

echo "hello, world!" | tr "[:lower:]" "[:upper:]"

Sortie :

HELLO, WORLD!

Dans cet exemple, [:lower:] représente l'ensemble de toutes les lettres minuscules, et [:upper:] représente l'ensemble de toutes les lettres majuscules. La commande tr remplace chaque lettre minuscule par sa version majuscule.

Gérer les plages de caractères

Vous pouvez également utiliser des plages de caractères pour remplacer un ensemble de caractères. Par exemple, pour remplacer tous les chiffres par les lettres majuscules correspondantes, vous pouvez utiliser la commande suivante :

echo "abc123def" | tr "0-9" "A-J"

Sortie :

abcABCdef

Dans ce cas, 0-9 représente la plage de chiffres, et A-J représente la plage de lettres majuscules de A à J. La commande tr remplace chaque chiffre par la lettre majuscule correspondante.

Exemples pratiques

Voici quelques exemples pratiques supplémentaires d'utilisation de la commande tr pour remplacer des caractères :

  1. Remplacer les espaces par des underscores :

    echo "hello world" | tr " " "_"

    Sortie : hello_world

  2. Remplacer plusieurs caractères à la fois :

    echo "abc123def" | tr "a-c 3" "x-z 9"

    Sortie : xyz129def

  3. Traduire l'encodage de caractères :

    echo "résumé" | tr "é" "e"

    Sortie : resume

Ces exemples démontrent la flexibilité de la commande tr pour effectuer des tâches de remplacement de caractères. En comprenant la syntaxe et les diverses options d'ensemble de caractères, vous pouvez adapter la commande tr pour répondre à vos besoins spécifiques de manipulation de texte.

Applications pratiques de tr

La commande tr est un outil polyvalent qui peut être utilisé dans une grande variété de scénarios pratiques. Voici quelques applications courantes de la commande tr :

Nettoyage et transformation de données

L'un des cas d'utilisation les plus courants de la commande tr est le nettoyage et la transformation de données. Par exemple, vous pouvez utiliser tr pour :

  • Supprimer les caractères indésirables d'un fichier ou d'une entrée texte
  • Convertir le texte en majuscules ou en minuscules
  • Normaliser le texte en remplaçant les caractères spéciaux ou la ponctuation
## Supprimer les caractères non alphanumériques d'un fichier
cat file.txt | tr -cd '[:alnum:]'

## Convertir un fichier en majuscules
cat file.txt | tr '[:lower:]' '[:upper:]'

## Remplacer les virgules par des points-virgules dans un fichier CSV
cat file.csv | tr ',' ';'

Manipulation et formatage de texte

La commande tr peut également être utilisée pour diverses tâches de manipulation et de formatage de texte, telles que :

  • Supprimer les espaces en début et en fin de ligne
  • Fusionner plusieurs espaces en un seul espace
  • Remplacer des caractères ou des mots spécifiques
## Supprimer les espaces en début et en fin de ligne
echo "   hello, world!   " | tr -d '[:space:]'

## Fusionner plusieurs espaces en un seul espace
echo "hello   world" | tr -s ' '

## Remplacer toutes les occurrences de "foo" par "bar"
echo "foo is foo" | tr "foo" "bar"

Transformations d'encodage

La commande tr peut être utile pour effectuer des transformations d'encodage de caractères, telles que :

  • Convertir entre différents encodages de caractères (par exemple, ASCII en UTF-8)
  • Supprimer ou remplacer des caractères accentués spécifiques
## Supprimer les accents d'une chaîne de caractères
echo "résumé" | tr "é" "e"

## Convertir un fichier d'ISO-8859-1 en UTF-8
iconv -f ISO-8859-1 -t UTF-8 file.txt | tr -d '\r'

Ce ne sont que quelques exemples des applications pratiques de la commande tr. En comprenant ses capacités et en la combinant avec d'autres outils Linux, vous pouvez créer des flux de traitement de texte puissants pour répondre à un large éventail de besoins.

Résumé

Dans ce tutoriel, vous avez appris à utiliser la commande tr sous Linux pour remplacer, supprimer ou traduire des caractères dans des fichiers texte et dans la sortie de commandes. Vous avez exploré divers exemples et cas d'utilisation, mettant en évidence la puissance et la flexibilité de cet outil en ligne de commande. En maîtrisant la commande tr, vous pouvez rationaliser vos tâches de traitement de texte et améliorer votre productivité globale dans l'environnement Linux.