-
BASH > TR
GÉNÉRALITÉS
tr -x "A" "B"-xpeut être-c -d -s -cd -cs"A"peut être de type :"a"ne concerne que la lettre a minuscule"abc"ne concerne que les lettres a, b et c minuscules
"a-k"ne concerne que les lettres comprises ente a et k"[:alnum:]"ne concerne que les lettres et chiffres[a*n]ne concerne que n fois le caractère a"B"peut être optionnel dans certains casREMPLACEMENTS
tr A Bremplace tous les caractères listés dans A par ceux listés dans B. Si A est plus long que B, le dernier caractère de B fera office de caractère de remplacement.tr "a" "o"remplace tous lesaparotr "a-f" "o"remplace tous les caractères deaàfparo.tr "ab" "oe"remplace tous lesaparoet tous lesbpare.si l’option
sest utilisée, alors la commande exécute les remplacements, puis comprime les motifs de B :tr -s "aeiou" "*-_=." <<< foobar→f-b*rSUPPRESSIONS
-d Asupprime les caractères listés dans A
-d "oa" <<< foobar→fbr-ds "A" "B"supprime tous les A, puis comprime tous les Btr -ds "f" "o" <<< fffooobbbaaarrr→obbbaaarrr(supprime tous les f, puis comprime tous les o)SAUF
-cRemplace tout SAUF :tr -c "o" "*" <<< fooobaaar→*ooo*****(remplace tout sauf les o)tr -cs "o" "*" <<< fooobaaar→*ooo*(comprime tout sauf les o, puis remplace tout sauf les o)tr -cs "o" <<< fooobaaar→fooobar(comprime tout sauf les o)COMPRIME
tr -sremplace les caractères répétés par un seul caractèretr -s<<< foooobaaaaar→fobartr -s a <<< foooobaaaaar→foooobar(ne concerne que les a)
tr -s "o" "*" <<< foooobaaaaar→f*baaaaar(ne compresse que les o, puis les remplace par une étoile)[:CLASS:]
[:alnum:]Lettres et chiffres (a-Z0-9)[:blank:]espaces horizontaux[:digit:]chiffres (0-9)[:lower:]lettres minuscules (a-z)[:punct:]caractères de ponctuation[:upper:]lettres majuscules[:alpha:]lettres[:cntrl:]caractères de contrôle[:graph:]caractères imprimables (sauf espace)[:print:]caractères imprimables (avec espace)[:space:]espaces horizontaux et verticaux[:xdigit:]chiffres hexadécimauxEXEMPLES
Remplacer les minuscules par les majuscules
tr ‘[:lower:]‘ ‘[:upper:]‘tr ‘a-z‘ ‘A-Z‘Inverser la casse
echo "FooBar" | tr "A-Za-z" "a-zA-Z"→fOObARRemplacer tous les blancs continus par un seul
tr -s ‘ ‘
Remplacer un caractère par un saut de ligne
tr ‘:‘ ‘\012‘→ ici, le caractère:sera remplacé par un saut de ligne
Supprimer tous les caractères non imprimables
tr -cd "[:print:]"
Effacer tous les caractères NULL
tr -d ‘\0′Remplacer des parenthèses ou accolades
tr ‘{}’ ‘()’tr ‘{}’ ‘\[]‘([doit être échappé par un\)
Remplacer tous les espaces par un seul #
tr -s '[:space:]‘ ‘[#*]‘Chaque mot sur une ligne, sans ligne vide :
tr -cs ‘a-zA-Z0-9′ ‘[\n*]‘ou
tr -cs A-Za-z0-9 ‘\012′Supprime les lignes vides consécutives
tr -s ‘\n’Chaque mot sur une ligne, sans doublons, sans ligne vide
tr -s ‘[:punct:][:blank:]‘ ‘\n’ | tr ‘[:upper:]‘ ‘[:lower:]‘ | uniq -dSupprimer les espaces vides (tabulations et sauts de ligne)
tr -d ‘\040\011\012\015′pour supprimer les espaces, tabulations, retour chariot et saut de ligne.