Présentation
Le tr
command est un utilitaire de ligne de commande Linux qui traduit ou supprime les caractères de l'entrée standard (stdin
) et écrit le résultat sur la sortie standard (stdout
). Utilisez tr
pour effectuer différentes transformations de texte, y compris la conversion de casse, la compression ou la suppression de caractères et le remplacement de texte de base.
Depuis tr
ne peut pas lire un fichier directement et affiche les résultats en sortie standard, il est souvent utilisé avec des tubes (|
) et redirections (>>
) pour permettre un traitement plus complexe du contenu des fichiers.
Dans ce tutoriel, vous apprendrez à utiliser Linux tr
commande.
Prérequis
- Un système exécutant Linux.
- Accès au terminal (Ctrl + Alt + T ).
Syntaxe de la commande Linux tr
Le tr
de base la syntaxe de la commande est :
tr [options] SET1 [SET2]
Options
Exécution tr
sans aucune option remplace chacun des caractères spécifiés dans SET1
avec les caractères de SET2
qui ont la même position.
Par exemple :
Dans l'exemple ci-dessus, la sortie de la commande echo est redirigée vers le tr
commande, remplaçant chaque instance de e avec o .
RÉGLER
SET
s sont des chaînes de caractères. La commande accepte les séquences interprétées suivantes pour la correspondance des caractères :
Séquence | Interprétation |
---|---|
\NNN | Caractères avec le NNN valeur octale (1 à 3 chiffres octaux). |
\\ | Barre oblique inverse. |
\a | Un caractère de cloche audible. |
\b | Retour arrière. |
\f | Flux de formulaire. |
\n | Caractère de saut de ligne. |
\r | Retourner le caractère. |
\t | Onglet horizontal. |
\v | Onglet vertical. |
CHAR1-CHAR2 | Tous les caractères de CHAR1 à CHAR2 dans un ordre croissant. |
[CHAR*] | Copies CHAR* en SET2 jusqu'à la longueur de SET1 . |
[CHAR*REPEAT] | Répète les copies de CHAR . Répète octal si commençant par 0. |
[:alnum:] | Toutes les lettres et chiffres. |
[:alpha:] | Toutes les lettres. |
[:blank:] | Espaces blancs horizontaux. |
[:cntrl:] | Tous les caractères de contrôle. |
[:digit:] | Tous les chiffres. |
[:graph:] | Caractères imprimables, hors espace. |
[:lower:] | Tous les caractères en minuscules. |
[:print:] | Caractères imprimables, y compris l'espace. |
[:punct:] | Tous les caractères de ponctuation. |
[:space:] | Caractères d'espacement horizontaux ou verticaux. |
[:upper:] | Toutes les lettres majuscules. |
[:xdigit:] | Chiffres hexadécimaux. |
[=CHAR=] | Tous les caractères équivalents à CHAR . |
Remarque : Un autre excellent éditeur de flux de texte Unix est SED. L'outil vous permet de rechercher, remplacer, ajouter et supprimer des lignes dans un fichier texte sans l'ouvrir dans un éditeur de texte.
Options de commande Linux tr
Les options fournissent des actions de transformation de personnage supplémentaires. Les options disponibles sont :
Option | Description |
---|---|
-C | Complète les caractères dans SET1 , y compris tous les caractères de la sortie à l'exception de ceux spécifiés. |
-c | Complète les valeurs dans SET1 . Les opérations s'appliquent aux caractères qui ne sont pas dans le jeu donné. |
-d | Supprime les caractères du SET1 saisie. |
-s | Serre les caractères répétés spécifiés dans le dernier opérande (soit SET1 ou SET2 ) et les remplace par une seule occurrence de ce caractère. |
-t | Tronque SET1 à la longueur de SET2 . |
-u | Veille à ce que toute sortie ne soit pas mise en mémoire tampon. |
--help | Affiche le fichier d'aide avec toutes les options disponibles. |
--version | Affiche les informations sur la version du programme. |
Exemples Linux tr
Vous trouverez ci-dessous des exemples d'utilisation du tr
commande avec différentes options pour transformer le texte d'entrée.
Modifier la casse des caractères
Il existe trois façons de changer la casse des caractères avec tr
:
Spécifiez les caractères de l'entrée que vous souhaitez convertir. Cette option change la casse des caractères ou des caractères entiers, remplaçant ceux de SET1
avec ceux de SET2
.
Par exemple :
La spécification d'une plage autorise tr
pour changer la casse de n'importe quel caractère dans cette plage spécifiée. L'exemple suivant montre comment convertir des caractères majuscules en minuscules :
Appuyez sur CTRL+C pour quitter le mode de saisie.
Associez et convertissez des caractères en spécifiant des séquences interprétées. Par exemple, la séquence pour les caractères minuscules est [:lower:]
, et la séquence pour les caractères majuscules est [:upper:]
. La spécification des deux séquences indique tr
pour faire correspondre et convertir la casse des caractères :
L'exemple ci-dessus montre comment tr
convertit les caractères majuscules en minuscules.
Supprimer les caractères répétés
Le -s
L'option comprime les caractères répétés en une seule instance de ce caractère. L'option est particulièrement utile lors de la conversion d'espaces blancs en tabulations ou en caractères de saut de ligne, et le texte d'entrée contient plusieurs caractères d'espacement continus.
Par exemple, l'entrée suivante contient plusieurs caractères d'espacement. Les convertir en onglets sans les serrer donne le résultat suivant :
Pour éviter plusieurs onglets et espaces blancs dans la sortie, spécifiez le -s
choix :
Supprimer des caractères
Supprimer des caractères spécifiques à l'aide du -d
option. Dans l'exemple suivant, tr
supprime chaque instance de e caractère :
Si vous le souhaitez, spécifiez un groupe de caractères à l'aide de séquences interprétées. Par exemple, supprimez tous les chiffres en spécifiant le [:digit:]
séquence :
Ensembles complémentaires
Utilisez le -c
option pour compléter les caractères en SET1
. Dans l'exemple suivant, nous supprimons tous les caractères sauf les chiffres :
Tous les caractères ne faisant pas partie du jeu spécifié (dans ce cas, tout sauf les chiffres) sont supprimés.
Supprimer les caractères de saut de ligne
Réduisez l'espace occupé par un texte en convertissant les caractères de saut de ligne en espaces. Le contenu apparaît alors sur une seule ligne.
Dans l'exemple suivant, nous utilisons la commande cat pour ouvrir un fichier texte et le rediriger vers tr
pour supprimer les caractères de saut de ligne :
Redirection vers tr
Une alternative à la canalisation consiste à utiliser la redirection pour alimenter le contenu en tr
. De plus, vous pouvez utiliser la redirection pour enregistrer le tr
sortie dans un fichier.
L'exemple suivant montre comment supprimer tous les caractères non imprimables d'un fichier dont le contenu est redirigé vers tr
:
Ensemble tronqué
Par défaut, si SET1
est plus long que SET2
, tr
réutilise le dernier caractère de SET2
lors du traitement de l'entrée. Par exemple :
Depuis SET1
est plus long que SET2
, tr
réutilise le dernier caractère de SET2
, dans ce cas, 2 .
Utilisez le -t
option pour tronquer SET1
à la longueur de SET2
:
Le -t
l'option indique tr
pour tronquer SET1
à la longueur de SET2
et remplace uniquement les deux premiers caractères.
Supprimer les signes diacritiques
Utilisez le [=CHAR=]
séquence pour faire correspondre tous les caractères équivalents à celui spécifié. Par exemple, la séquence peut identifier et supprimer les signes diacritiques des caractères.
Imprimez chaque mot séparément
Imprimer le contenu d'un fichier ligne par ligne en utilisant le -c
et remplacez les caractères non alphanumériques par un caractère de saut de ligne.
Remarque : Si vous préférez utiliser Bash, voyez comment lire un fichier ligne par ligne.
La sortie est maintenant affichée un mot à la fois.
Enregistrer la sortie dans un fichier
Depuis tr
ne modifie pas directement le contenu d'un fichier, il n'enregistre pas non plus les modifications que vous apportez. Enregistrez la sortie dans un fichier en la redirigeant comme indiqué dans l'exemple suivant :
Ouverture du nouveau fichier avec cat
indique que les modifications ont été enregistrées.
Conclusion
Ce tutoriel a montré comment utiliser le tr
commande et ses options disponibles pour diverses transformations de texte. Découvrez d'autres utilitaires de texte Linux dans nos guides pour la commande de tri et moins de téléavertisseur de terminal, ou consultez les meilleurs éditeurs de texte Linux.