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


NOM
       grep,  egrep,  fgrep - Afficher les lignes correspondant à
       un motif donné.

SYNOPSIS
       grep [ -[[AB] ]num ] [ -[CEFGVBchilnsvwx] ] [ -e ] motif |
       -ffichier ] [ fichiers...  ]

DESCRIPTION
       Grep  Recherche  dans  les  fichiers d'entrée indiqués les
       lignes correspondant à un certain motif.

       Si aucun fichier n'est fourni, ou si le nom `-'  est  men­
       tionné, la lecture se fait depuis l'entrée standard.

       Par  défaut,  grep  affiche  les  lignes  correspondant au
       motif.

       Il existe trois variantes principales de grep,  controlées
       par les options suivantes.

       -G     Interprète  le motif comme une expression régulière
              simple (voir plus bas). C'est le  comportement  par
              défaut.
       -E     Interprète  le motif comme une expression régulière
              étendue (voir plus bas).
       -F     Interprète le motif  comme  une  liste  de  chaînes
              figées, séparées par des Sauts de Lignes (NewLine).
              La correspondance est faite avec n'importe laquelle
              de ces chaînes.

       De  plus, il existe deux variantes du programme : egrep et
       fgrep.   Egrep  est  similaire  (sans  être  identique)  à
       grep -E,  et  est  compatible  avec les versions UNIX his­
       toriques de egrep.  Fgrep est identique à grep -F.

       Toutes les variantes de grep acceptent les  options  suiv­
       antes :
       -num   Les   correspondances  seront  affichées  avec  num
              lignes supplémentaires avant et  après.  Néanmoins,
              grep  n'affichera jamais une ligne plus d'une fois.
       -A num Afficher num lignes supplémentaires après la  ligne
              correspondante.
       -B num Afficher  num lignes supplémentaires avant la ligne
              correspondante.
       -C     est équivalent à -2.
       -V     Afficher le numéro de version de grep sur la sortie
              d'erreur  standard. Ce numéro de version devra être
              inclus dans tous les rapports de  bugs  (voir  plus
              bas).
       -b     Avant  chaque  ligne,  afficher  son  décalage  (en
              octet) au sein du fichier d'entrée.
       -c     Ne pas afficher les résultats normaux. A la  place,
              afficher  un compte des lignes correspondantes pour



FSF                      15 Janvier 1997                        1





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


              chaque fichier d'entrée.  Avec  l'option  -v  (voir
              plus bas), afficher les nombres de lignes ne corre­
              spondant pas au motif.
       -e motif
              Utiliser le motif indiqué. Ceci permet de  protéger
              les motifs commençant par -.
       -f fichier
              Lire le motif dans le fichier indiqué.
       -h     Ne pas afficher le nom des fichiers dans les résul­
              tats lorsque plusieurs fichiers sont parcourus.
       -i     Ignorer les différences majuscules/minuscules aussi
              bien  dans le motif que dans les fichiers d'entrée.
              ([NDT] Comme toujours, ceci ne fonctionne pas  avec
              les caractères accentués...)
       -L     Ne  pas afficher les résultats normaux. A la place,
              indiquer le nom des fichiers  pour  lesquels  aucun
              résultat n'aurait été affiché.
       -l     Ne  pas afficher les résultats normaux. A la place,
              indiquer le nom  des  fichiers  pour  lesquels  des
              résultats auraient été affiches.
       -n     Ajouter  à  chaque  ligne de sortie un préfixe con­
              tenant son numéro dans le fichier d'entrée.
       -q     Silence. Ne pas afficher les résultats normaux.
       -s     Ne pas afficher les messages  d'erreurs  concernant
              les fichiers inexistants ou illisibles.
       -v     Inverser la mise en correspondance, pour sélection­
              ner les lignes ne correspondant pas au motif.
       -w     Ne sélectionner que les lignes contenant une corre­
              spondance  formant  un mot complet.  La sous-chaîne
              correspondante doit donc être soit au début  de  la
              ligne,  soit  précédée d'un caractère n'appartenant
              pas à un mot.  De même elle doit se trouver soit  à
              la  fin  de  la ligne, soit être suivie par un car­
              actère n'appartenant pas à un mot.  Les  caractères
              composants  les mots sont les lettres, les chiffres
              et le souligné  (`_').   ([NDT]  Bien  entendu  les
              minuscules  accentuées  ne  sont  pas des lettres !
              elles servent donc à séparer les mots...)
       -x     Ne sélectionner que les correspondances  qui  occu­
              pent une ligne entière.

EXPRESSIONS RÉGULIÈRES
       Une  expression  régulière  est  un  motif  qui  permet de
       décrire un ensemble de chaînes. Les expressions régulières
       sont  construites  comme  des opérations arithmétiques, en
       utilisant des opérateurs divers pour combiner des  expres­
       sions plus petites.

       Grep  comprend  deux  versions différentes pour la syntaxe
       des expressions régulières :  ``simple''  et  ``étendue.''
       Dans  la  version  GNU de grep, il n'y a pas de différence
       dans les fonctionnalités disponibles en utilisant l'une ou
       l'autre  des syntaxes.  Dans d'autres implémentations, les
       expressions régulières simples sont moins  puissantes.  La



FSF                      15 Janvier 1997                        2





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


       description  ci-dessous  correspond  aux expressions éten­
       dues, les différences avec les expressions  simples  étant
       résumées ensuite.

       Les  briques  élémentaires sont les expressions régulières
       correspondant à un simple caractère. La plupart  des  car­
       actères,  y  compris  toutes  les lettres et les chiffres,
       sont des expressions régulières se  correspondant  à  eux-
       mêmes.   Tout   méta-caractère   ayant  une  signification
       spéciale doit être protégé en  le  faisant  précéder  d'un
       BackSlash.

       Une  liste  de  caractères,  encadrée par [ et ] peut être
       mise  en  correspondance  avec  n'importe  quel  caractère
       unique appartenant à la liste.  Si le premier caractère de
       la liste est l'accent circonflexe ^ alors la mise en  cor­
       respondance  se  fait avec n'importe quel caractère absent
       de  la  liste.   Par   exemple,   l'expression   régulière
       [0123456789] convient pour n'importe quel chifre unique.

       Un  intervalle  de  caractères  ASCII peut être indiqué en
       donnant le premier et le dernier caractère séparés par  un
       tiret.

       Finalement  il  existe  certaines  classes  de  caractères
       prédéfinies.   Leurs  noms   sont   assez   explicites   :
       [:alnum:],  [:alpha:],  [:cntrl:],  [:digit:]  (chiffres),
       [:graph:],  [:lower:]  (minuscules),  [:print:]   (affich­
       ables),  [:punct:],  [:space:], [:upper:] (majuscules), et
       [:xdigit:]   (chiffres   héxadécimaux).    par    exemple,
       [[:alnum:]]  correspond à [0-9A-Za-z], à la différence que
       le dernier dépend de l'encodage ASCII, alors que  le  pre­
       mier  est  plus portable.  Remarquez que les crochets dans
       les noms de classes font partie intégrante du nom  symbol­
       ique,  et qu'ils doivent donc être inclus en plus des cro­
       chets encadrant la liste.  La plupart des  méta-caractères
       perdent leurs significations spéciales au sein des listes.
       Pour inclure un ] littéral, mettez-le en premier  dans  la
       liste.   De  même,  pour  inclure un ^ littéral, placez-le
       n'importe ou sauf au  début  de  la  liste.   Enfin,  pour
       inclure un - placez-le en dernier.

       Le  point .  correspond à n'importe quel caractère unique.
       Le symbole \w est un synonyme de [[:alnum:]] et \W un syn­
       onyme de [^[:alnum]].

       L'accent  circonflexe  ^  et  le symbole dollar $ sont des
       méta-caratères correspondant respectivement à  une  chaîne
       vide  au  début et en fin de ligne.  Les symboles \< et \>
       correspondent respectivement à une chaîne vide en début et
       en fin de mot.  Le symbole \b correspond à une chaîne vide
       à l'extrémité d'un mot, et \B correspond à une chaîne vide
       ne se trouvant pas à une extrémité de mot.




FSF                      15 Janvier 1997                        3





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


       Une  expression  régulière  correspondant  à  un caractère
       unique  peut  être  suivie  par  l'un  des  opérateurs  de
       répétition suivants :
       ?      L'élément précédent est facultatif et doit être mis
              en correspondance une fois au maximum.
       *      L'élément précédent doit être mis en correspondance
              zéro ou plusieurs fois.
       +      L'élément précédent doit être mis en correspondance
              au moins une fois.
       {n}    L'élément précédent doit être mis en correspondance
              exactement n fois.
       {n,}   L'élément précédent doit être mis en correspondance
              n fois ou plus.
       {,m}   L'élément précédent est facultatif et doit être mis
              en correspondance m fois au plus.
       {n,m}  L'élément précédent doit être mis en correspondance
              au moins n fois, mais au plus m fois.

       Deux  expressions  régulières  peuvent  être  juxtaposées,
       l'expression  en  résultant  correspondra  à  toute chaîne
       formée par la juxtaposition de  deux  sous-chaînes  corre­
       spondant respectivement aux deux sous-expression.

       Deux  expressions  régulières  peuvent  être  reliées  par
       l'opérateur infixe |; l'expression résultante correspondra
       à  toute  chaîne correspondant à l'une ou l'autre des deux
       sous-expressions.

       Les répétitions ont priorité sur les juxtapositions, qui à
       leur  tour  ont  priorité  sur les alternatives. Une sous-
       expression peut être entourée  par  des  parenthèses  pour
       modifier ces règles de précédence.

       La référence inverse \n, ou n est un chiffre, correspond à
       la sous-chaîne déjà mise en correspondance avec  la  nième
       sous-expression régulière entre parenthèses.

       Dans  les  expressions  régulières  simples, les méta-car­
       actères ?, +, {, |, (, et ) perdent  leurs  significations
       spéciales, il faut utiliser à la place leurs versions avec
       BackSlash \?, \+, \{, \|, \(, et \).

       Dans egrep  le  méta-caractère  {  perd  sa  signification
       spéciale, il faut utiliser \{ à la place.

DIAGNOSTIQUE
       Normalement,  le  code  de  retour est 0 si des correspon­
       dances ont été trouvées, et 1 si aucune correspondance n'a
       été faite.  L'option -v inverse le sens du code de retour.
       Le code de retour correspond à des erreurs de syntaxe dans
       le motif, des fichiers d'entrée inaccessibles, ou d'autres
       erreurs système.





FSF                      15 Janvier 1997                        4





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


BUGS
       Envoyez les rapports de bug ([NDT] en anglais  !)  à  bug-
       gnu-utils@prep.ai.mit.edu.   Assurez-vous d'inclure le mot
       ``grep'' quelque part dans le champ ``Subject:''.

       Dans  les  constructions  {m,n}  de  grandes  valeurs   de
       répétition  peuvent  pousser  grep  à utiliser beaucoup de
       mémoire.  De plus, certaines autres expressions régulières
       obscures  peuvent prendre un temps exponentiellement long,
       et mener à un manque de mémoire.

       Les références inverses sont très lentes et peuvent néces­
       siter un temps exponentiellement long.


TRADUCTION
       Christophe Blaess, 1997.








































FSF                      15 Janvier 1997                        5