TR(1)             Manuel de l'utilisateur Linux             TR(1)


NOM
       tr - Transposer ou éliminer des caractères.

SYNOPSIS
       tr   [-cst]  [--complement]  [--squeeze-repeats]  [--trun­
       cate-set1] chaîne_1 chaîne_2
       tr {-s,--squeeze-repeats} [-c] [--complement] chaîne_1
       tr {-d,--delete} [-c] chaîne_1
       tr {-d,--delete}  {-s,--squeeze-repeats}  [-c]  [--comple­
       ment] chaîne_1 chaîne_2

       La  version GNU de tr accepte également les options --help
       et --version.

DESCRIPTION
       Cette page de manuel documente la version GNU de tr.

       tr copie son entrée standard sur  sa  sortie  standard  en
       effectuant l'une des manipulations suivantes :

              ·  transposer,  et  éventuellement  réunir les car­
              actères dupliqués de la chaîne résultante
              · réunir les caractères dupliqués
              · supprimer des caractères
              ·  supprimer  des  caractères,  et   éventuellement
              réunir les caractères dupliqués de la chaîne résul­
              tante

       Les  arguments   chaîne1   et   (éventuellement)   chaîne2
       décrivent  des  ensembles ordonnés de caractères, que l'on
       mentionnera plus bas sous les noms de jeu1 et  jeu2.   Ces
       ensembles représentent les caractères de l'entrée standard
       sur lesquels tr travaillera.  L'option  --complement  (-c)
       remplace  jeu1  par  son  complément  (tous les caractères
       n'appartenant pas à jeu1).

   DEFINIR LES ENSEMBLES DE CARACTÈRES
       Le format des arguments chaîne1  et  chaîne2  ressemble  à
       celui  des  expressions régulières. Il ne s'agit toutefois
       pas d'expressions régulières, mais simplement de listes de
       caractères.   La  plupart  des caractères sont représentes
       par eux-mêmes, néanmoins  les  chaînes  peuvent  également
       contenir  des  raccourcis plus simples décrits ci-dessous.
       Certains de ces raccourcis ne peuvent  être  utilisés  que
       dans  chaîne1  ou  que dans chaîne2, comme c'est mentionné
       ci-dessous.

       Séquences avec BackSlash. Un  backslash  suivi  d'un  car­
       actère   non   défini   ci-dessous  déclenche  un  message
       d'erreur.

       \a     Controle-G.

       \b     Controle-H.



FSF                      14 Janvier 1997                        1





TR(1)             Manuel de l'utilisateur Linux             TR(1)


       \f     Controle-L.

       \n     Controle-J.

       \r     Controle-M.

       \t     Controle-I.

       \v     Controle-K.

       \ooo   Le caractère de valeur octale ooo, s'étendant sur 1
              à 3 chiffres.

       \\     BackSlash.

       Intervalles.   La  notation `m-n' représente tous les car­
       actères compris entre m et n, en ordre croissant.  m  doit
       être  inférieur  à  n,  sinon  une erreur se produit.  Par
       exemple, `0-9' est équivalent à `0123456789'.  Bien que la
       version  GNU de tr ne supporte pas la syntaxe System V qui
       utilise des crochets pour indiquer  les  intervalles,  les
       transpositions  spécifiées  avec  ce format fonctionneront
       quand même si les crochets de chaîne1 correspondent à  des
       crochets identiques de chaîne2.

       Répétition de caractères. La notation `[c*n]' dans chaîne2
       se developpe en n copies du caractère  c.  Ainsi,  `[y*6]'
       est  équivalent  à  `yyyyyy'.   La  notation  `[c*]'  dans
       chaîne2 se développe en autant de copie de c qu'il le faut
       pour rendre le jeu2 aussi long que jeu1. Si n commence par
       0, il est interprété en octal, sinon en décimal.

       Classes de caractères. La notation `[:nom-classe:]' corre­
       spond à l'ensemble de tous les caractères appartenant à la
       classe (prédéfinie)  nom-classe.   Les  caractères  ne  se
       présentent  pas  dans  un ordre particulier, sauf pour les
       classes `upper' `lower' dont les  membres  sont  en  ordre
       croissant.    Quand   les   options   --delete   (-d)   et
       --squeeze-repeats  (-s)  sont   utilisées   simultanément,
       n'importe quelle classe de caractères peut être mentionnée
       dans chaîne2.  Autrement, seules les  classes  `lower'  et
       `upper'  sont acceptées dans string2, et ceci seulement si
       la classe correspondante (`upper' et `lower',  respective­
       ment)  est  mentionnée  à  la  même position relative dans
       chaîne1. Ceci permet de convertir le type majuscule/minus­
       cule des caractères. Les noms de classes sont indiqués ci-
       dessous. Une erreur se produit si l'on tente d'utiliser un
       nom de classe invalide.

       alnum  Lettres et chiffres.

       alpha  Lettres.

       blank  Espaces blancs horizontaux.



FSF                      14 Janvier 1997                        2





TR(1)             Manuel de l'utilisateur Linux             TR(1)


       cntrl  caractères de controles.

       digit  Chiffres.

       graph  caractères imprimables, sauf l'espace.

       lower  Lettres minuscules.

       print  caractères imprimables, y compris l'espace.

       punct  caractères de ponctuation.

       space  Espaces blancs horizontaux ou verticaux.

       upper  Lettres majuscules.

       xdigit Chiffres héxa-décimaux.

       Classes  d'équivalence. La syntaxe `[=c=]' se développe en
       l'ensemble des caractères équivalents à c, sans ordre par­
       ticulier.   Les  classes  d'équivalence sont une invention
       récente destinée à  supporter  les  alphabets  autres  que
       l'anglais.  Mais  il  n'y a pas de manière standard de les
       définir ou de connaître leur contenu.  Ainsi elles ne sont
       pas totalement implémentées dans la version GNU de tr.  La
       classe d'équivalence d'un caractère est  composée  unique­
       ment  de  ce  caractère,  ce qui rend ces classes inutiles
       actuellement.

       [NDT] Il serait  pourtant  bien  pratique  que  la  classe
       d'équivalence d'un caractère inclut également ses versions
       accentuées...

   TRADUCTION
       tr effectue les traductions de  caractères  lorsqu'on  lui
       fournit à la fois chaîne1 et chaîne2, et si l'on n'utilise
       pas l'option --delete (-d).  tr transpose chaque caractère
       d'entrée appartenant au jeu1 en un caractère correspondant
       du jeu2. Les caractères non trouvés dans jeu1 sont  copies
       sans  modification.  Quand un caractère apparaît plusieurs
       fois dans jeu1, et si  les  caractères  correspondants  de
       jeu2  ne  sont  pas  toujours  les mêmes, seule la version
       finale est utilisée.  Par exemple ces deux commandes  sont
       équivalentes :
              tr aaa xyz
              tr a z

       Un  usage classique de tr est la conversions de minuscules
       en  majuscules.  Ceci  peut  être  réalisé  de  nombreuses
       manières différentes. En voici trois :
              tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
              tr a-z A-Z
              tr '[:lower:]' '[:upper:]'




FSF                      14 Janvier 1997                        3





TR(1)             Manuel de l'utilisateur Linux             TR(1)


       [NDT]  Une  utilisation pratique pour nous est la suppres­
       sion des accents d'un texte. En voici un  exemple  suppri­
       mant les accents utilisés en français.
              tr "àçéèêëîïôöùüÂÇÉÈÊËÎÏÔÖÙÜ" "aceeeeiioouuACEEEEIIOOUU"

       Quand  tr  effectue  une  traduction, jeu1 et jeu2 doivent
       normalement avoir la  même  longueur.  Si  jeu1  est  plus
       courte  que jeu2, les caractères supplémentaires en fin de
       jeu2 sont ignorés.

       D'autre part, si jeu1 est plus long que  jeu2,  la  porta­
       bilité  n'est pas assurée. POSIX.2 précise que dans ce cas
       le  comportement  est  indéfini.  La  version  BSD  de  tr
       complète  jeu2  jusqu'à  la  même  longueur  que  jeu1  en
       répétant  son  dernier  caractère  de  fois   autant   que
       nécéssaire.  La  version  System V de tr tronque jeu1 à la
       même longueur que jeu2.

       Par défaut, la version GNU de tr se comporte comme la ver­
       sion  BSD.   Quand  l'option --truncate-set1 (-t) est men­
       tionnée, elle se  comporte  comme  la  version  System  V.
       Cette option n'a pas d'effet pour les autres manipulations
       que les traductions.

       Le comportement System V de tr rend impossible la commande
       BSD classique
              tr -cs A-Za-z0-9 '\012'
       car  elle  ne  convertit  que  les octets nuls (le premier
       élément du complément de jeu1) en Saut de Ligne,  au  lieu
       de convertir tous les caractères non-alphanumériques.

   ÉLIMINER LES RÉPÉTITIONS ET EFFACER DES CARACTÈRES
       Quand  seule  l'option  --delete (-d) est fournie, tr sup­
       prime tous les caractères d'entrée présents dans jeu1.

       Quand seule l'option --squeeze-repeats (-s)  est  fournie,
       tr  remplace  chaque répétitions de caractères appartenant
       au jeu1 par une seule occurence de ce caractère.

       Quand les deux options --delete et --squeeze-repeats  sont
       réclamées  en  même  temps, tr effectue d'abord toutes les
       suppressions des caractères  de  jeu1,  puis  élimine  les
       répétitions des caractères appartenant au jeu2.

       L'option  --squeeze-repeats  peut  également être utilisée
       pendant les traductions, auquel cas tr effectue d'abord la
       transposition,  puis élimine les répétitions de caractères
       appartenant au jeu2.

       Voici quelques exemples destinés à illustrer diverses com­
       binaisons des options :

       Supprimer les octets nuls :
              tr -d '\000'



FSF                      14 Janvier 1997                        4





TR(1)             Manuel de l'utilisateur Linux             TR(1)


       Afficher  chaque mot sur une ligne indépendante. Ceci con­
       vertit tous les caractères non alphanumériques en sauts de
       lignes,  puis  regroupe les lignes blanches successives en
       un seul saut de ligne :
              tr -cs '[a-zA-Z0-9]' '[\n*]'

       Convertir les séquences de sauts de lignes en un seul saut
       de ligne (ceci supprime les lignes blanches) :
              tr -s '\n'

       La  version  GNU  de  tr  accepte  également  les  options
       supplémentaire suivantes :

       --help Afficher un message d'aide sur la  sortie  standard
              et terminer normalement.

       --version
              Afficher  un  numéro de version sur la sortie stan­
              dard et terminer normalement.

   MESSAGE D'AVERTISSEMENT
       Lorsque la variable  d'environnement  POSIXLY_CORRECT  est
       validée,  plusieurs messages d'erreurs et d'avertissements
       sont inhibés, afin  d'assurer  une  compatibilité  stricte
       avec POSIX.2.  Les messages en question se produisent dans
       les circonstances suivantes :

       1. Quand l'option  --delete  est  utilisée  sans  l'option
       --squeeze-repeats,  et  si chaîne2 est fournie, la version
       GNU de tr affiche par défaut un  message  d'erreur  et  se
       termine,  car chaîne2 ne serait pas utilisée. Les spécifi­
       cations POSIX indiquent que dans ce cas chaîne2 doit  sim­
       plement  être  ignorée.  Ignorer un argument sans prévenir
       l'utilisateur n'est pas une bonne idée.

       2. Quand  un  nombre  octal  ambigu  est  fourni  par  une
       séquence  d'échappement.   Par  exemple \400 correspond en
       réalite au caractère \40 suivi du chiffre 0, car la valeur
       octale 400 ne tient pas dans un octet.

       Remarquez  que la version GNU de tr ne fournit pas de com­
       patibilité totale BSD ou System V. Par exemple, il  n'y  a
       pas  d'option  pour inhiber l'interprètation des séquences
       POSIX  [:alpha:], [=c=], et  [c*10].  Remarquez  également
       que  la  version GNU de tr ne supprime pas les octets nuls
       automatiquement contrairement aux versions UNIX tradition­
       nelles, avec lesquelles il n'y a pas de moyen de conserver
       les octets nuls.


TRADUCTION
       Christophe Blaess, 1997.





FSF                      14 Janvier 1997                        5