coreutils GNU Opérations sur les caractères
tr
Traduit et réduit les caractères
tr copie l'entrée standard sur la sortie standard, en effectuant un de ces opérations :
- Traduit, et optionnellement réduit les caractères répétés dans le résultat.
- Réduit les caractères répétés.
- Supprimer des caractères
- Supprimer des caractères, puis réduit les caractères répétés dans le résultat.
Jeux de caractères
Les arguments SET1 et SET2 définissent les jeux de caractères ordonnés.Le format de SET1 et SET2 ressemble au format des expressions régulières ; cependant ce ne sont pas des expressions régulières, seulement des listes de caractères.
Caractères spéciaux reconnus :
\a Control-G
\b Control-H
\f Control-L
\n Control-J
\r Control-M
\t Control-I
\v Control-K
\000 Représente la valeur en octal d'un caractère.
\\ backslash
Plages
une plage est sous la forme M-NCaractères répétés
La notation [C*N] dans SET2 étend N copies du caractère C. donc [y*6] revient à yyyyyy.Classes de caractères
La notation [:CLASS :] s'étend à tous les caractères de la classe prédéfinie CLASS.alnum Lettres et chiffres
alpha Lettres
blank Espaces horizontaux
cntrl Caractères de contrôle
digit Chiffres
graph Caractères imprimables, mais pas les espaces
lower Lettres minuscules
print Caractères imprimables
punct Caractères de ponctuation
space Espaces horizontaux et verticaux
upper Lettre majuscules
xdigits Chiffres Hexadécimaux
Traduction
tr effectue une traduction quand SET1 et SET2 sont données et que l'option --delete n'est pas donné. tr traduit chaque caractère de l'entrée qui est listé dans SET1 par le caractère spécifié dans SET2.Exemple
Tout mettre en majusculetr a-Z A-Z ou tr '[:lower:]' '[:upper:]'
Réduire
En donnant juste l'option --delete ou -d, tr supprime tous caractère listé dans SET1.En donnant juste l'option --squeeze-repeats ou -s, tr remplace chaque séquence de caractères répété et listé dans SET1, par un seul.
En utilisant ces 2 options, tr supprime d'abord en utilisant SET1, puis réduit en utilisant SET2. -s peut être utilisé avec la traduction.
Exemples
supprimer tous les octets 0tr -d '\0'
convertit tous les caractère non-alphanumérique en newline, puis réduit les newlines répétés
tr -cs '[:alnum :]' '[\n*]'
supprimer les newlines consécutifs
tr -s '\n'
trouver les occurrences doublées de mots dans un document
#! /bin/sh
cat -- "$@" | tr -s '[:punct:][:blank:]' '[\n*]' | tr '[:upper:]' '[:lower:]' | uniq -d