Index des commandes Aide

Man pages

-->
    GREP(1)                                                                GREP(1)



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

SYNOPSIS
       grep [options] MOTIF [FICHIER...]
       grep [options] [-e MOTIF | -f FICHIER] [FICHIER...]

DESCRIPTION
       grep recherche dans les FICHIERs indiqués les lignes correspondant à un
       certain  MOTIF. Par défaut, grep affiche les lignes qui contiennent une
       correspondance au motif. L’entrée standard est lue si FICHIER est  omis
       ou si FICHIER vaut « - ».

       Trois variantes du programme sont disponibles : egrep, fgrep et rgrep ;
       egrep est identique à grep -E, fgrep est identique à grep -F  et  rgrep
       est identique à grep -r.

OPTIONS
       -A N, --after-context=N
              Afficher  les N lignes qui suivent celle contenant le motif. Une
              ligne contenant -- est insérée entre  les  groupes  contigus  de
              correspondances.

       -a, --text
              Traiter  un  fichier  binaire  comme  s’il s’agissait de texte ;
              c’est l’équivalent de l’option --binary-files=text.

       -B N, --before-context=N
              Afficher les N lignes qui précèdent celle qui contient le motif.
              Une ligne contenant -- est insérée entre les groupes contigus de
              correspondances.

       -b, --byte-offset
              Avant chaque ligne, afficher sa position relative (en octets) au
              sein du fichier.

       --binary-files=TYPE
              Si les premiers octets d’un fichier indiquent qu’il contient des
              données binaires, considérer que le fichier est  de  type  TYPE.
              Par défaut, TYPE est binary, et grep affiche un message uniligne
              disant que le fichier binaire contient  le  motif  ou  n’affiche
              rien s’il n’y a pas concordance. Si TYPE est without-match, grep
              considère qu’un fichier binaire ne concorde jamais. C’est équiv‐
              alent  à  l’option  -I. Si TYPE est text, grep traite un fichier
              binaire comme du texte. C’est équivalent à l’option  -a.  Atten‐
              tion :   grep  --binary-files=text  peut  afficher  des  données
              binaires  indésirables,  qui  peuvent  avoir  des   conséquences
              fâcheuses  si  la  sortie  est envoyée vers un terminal et si le
              pilote de celui-ci l’interprète en tant que commandes.

       -C N, --context=N
              Afficher N lignes  de  contexte.  Une  ligne  contenant  --  est
              insérée entre les groupes contigus de correspondances.

       -c, --count
              Ne  pas  afficher les résultats normaux. À la place, afficher un
              décompte des lignes correspondant au motif pour chaque  fichier.
              Avec  l’option -v, --invert-match (voir ci-dessous), afficher le
              nombre de lignes ne contenant pas le motif.

       --colour[=QUAND], --color[=QUAND]
              Entourer la chaîne correspondante  avec  les  marqueurs  trouvés
              dans   la   variable  d’environnement  GREP_COLOR.  Les  valeurs
              possibles de QUAND sont never, always ou auto.

       -D ACTION, --devices=ACTION
              Si le fichier est un  périphérique,  une  FIFO  ou  une  socket,
              utiliser  ACTION  dessus. Par défaut, ACTION est read (lecture),
              ce qui  signifie  que  les  périphériques  sont  lus  comme  des
              fichiers  normaux.  Si  ACTION  est skip, les périphériques sont
              ignorés en silence.

       -d ACTION, --directories=ACTION
              Si le fichier est un répertoire, utiliser  ACTION.  Par  défaut,
              ACTION  est  read,  ce qui signifie que les répertoires sont lus
              comme des fichiers normaux. Si ACTION est skip, les  répertoires
              sont  ignorés  et  aucun  message  n’est  affiché. Si ACTION est
              recurse, grep lit tous les fichiers présents dans chaque  réper‐
              toire, récursivement. C’est équivalent à l’option -r.

       -E, --extended-regexp
              Interpréter  le  MOTIF  comme une expression rationnelle étendue
              (voir ci-dessous).

       -e MOTIF, --regexp=MOTIF
              Utiliser le MOTIF indiqué. Ceci permet de  protéger  les  motifs
              commençant par « - ».

       -F, --fixed-strings
              Interpréter  le  MOTIF comme une liste de chaînes de caractères,
              séparées par des sauts de ligne. Chacune d’entre elles doit être
              recherchée.

       -f FICHIER, --file=FICHIER
              Lire  les motifs dans le FICHIER indiqué, un motif par ligne. Un
              fichier vide ne contient aucun motif, si bien qu’aucune  concor‐
              dance n’est trouvée.

       -G, --basic-regexp
              Interpréter  le  MOTIF  comme  une expression rationnelle simple
              (voir ci-dessous). C’est le comportement par défaut.

       -H, --with-filename
              Afficher le nom du fichier pour chaque concordance.

       -h, --no-filename
              Ne pas afficher le nom des fichiers dans les  résultats  lorsque
              plusieurs fichiers sont parcourus.

       --help Afficher un court message d’aide.

       -I     Traiter  un  fichier binaire comme s’il ne contenait aucune con‐
              cordance ;  c’est  équivalent  à  l’option  --binary-files=with‐
              out-match.

       -i, --ignore-case
              Ignorer la casse aussi bien dans le MOTIF que dans les fichiers.

       -L, --files-without-match
              Ne pas afficher les résultats normaux. À la place,  indiquer  le
              nom  des  fichiers  pour  lesquels  aucun  résultat n’aurait été
              affiché. La recherche dans chaque fichier cesse dès la  première
              concordance.

       -l, --files-with-matches
              Ne  pas  afficher les résultats normaux. À la place, indiquer le
              nom des  fichiers  pour  lesquels  des  résultats  auraient  été
              affichés. La recherche dans chaque fichier cesse dès la première
              concordance.

       --label=ÉTIQUETTE
              Afficher les données provenant de  l’entrée  standard  comme  si
              elles  provenaient  du fichier ÉTIQUETTE. C’est particulièrement
              utile pour des outils comme zgrep, par exemple : gzip -cd foo.gz
              |grep --label=truc quelquechose

       --line-buffered
              Mettre  les lignes dans un tampon. Ceci peut réduire les perfor‐
              mances.

       -mN, --max-count=N
              Arrêter de lire un fichier après avoir trouvé N  lignes  concor‐
              dantes.  Si  l’entrée  est  l’entrée  standard  prise  depuis un
              fichier normal, et si N lignes qui correspondent sont affichées,
              grep s’assure avant de s’arrêter que l’entrée standard est posi‐
              tionnée juste après la dernière ligne qui concorde, même s’il  y
              a des lignes de contexte supplémentaires ensuite. Ceci permet au
              processus  d’appel  de  redémarrer  une  recherche.  Quand  grep
              s’arrête  après  N  lignes de concordance, il affiche toutes les
              lignes de contexte. Quand l’option -c ou --count  est  utilisée,
              grep  n’affiche  pas  plus  de  N  lignes.  Quand l’option -v ou
              --invert-match est aussi utilisée,  grep  s’arrête  après  avoir
              affiché N lignes qui ne contiennent pas le motif.

       --mmap Si  possible, utiliser la fonction système mmap(2) pour lire les
              données  en  entrée  plutôt  que  la  fonction  système  read(2)
              utilisée par défaut. Dans certaines circonstances, --mmap permet
              de meilleures performances. Cependant, --mmap peut avoir un com‐
              portement  aléatoire (y compris la génération d’un core dump) si
              un fichier voit sa taille réduite pendant que grep le lit, ou si
              une erreur d’entrée-sortie survient.

       -n, --line-number
              Préfixer  chaque  ligne de sortie par le numéro de la ligne dans
              le fichier.

       -o, --only-matching
              N’afficher que la partie d’une ligne qui correspond au MOTIF.

       -P, --perl-regexp
              Interpréter le MOTIF comme étant une expression  rationnelle  de
              Perl.

       -q, --quiet, --silent
              Ne pas afficher les résultats normaux. Sortir immédiatement avec
              un code de  retour  égal  à  zéro  dès  qu’une  concordance  est
              trouvée,  même  si une erreur est détectée. Voyez aussi l’option
              -s ou --no-messages.

       -R, -r, --recursive
              Lire récursivement tous les fichiers  à  l’intérieur  de  chaque
              répertoire. C’est l’équivalent de l’option -d recurse.

         --include=MOTIF
              Rechercher  récursivement  dans  les  répertoires  seulement les
              fichiers qui correspondent au MOTIF.

         --exclude=MOTIF
              Rechercher récursivement dans les répertoires les  fichiers  qui
              ne correspondent pas au MOTIF.

       -s, --no-messages
              Ne  pas  afficher  les messages d’erreur concernant les fichiers
              inexistants ou illisibles. Note de portabilité : à la différence
              de GNU grep, le grep traditionnel n’est pas conforme au standard
              POSIX.2, car le grep traditionnel n’a pas  d’option  -q  et  son
              option  -s  agit  comme  l’option -q du grep de GNU. Les scripts
              shell  destinés  à  être  utilisés  avec  le  grep  traditionnel
              devraient  éviter  d’utiliser les options -q et -s, et devraient
              plutôt rediriger la sortie vers /dev/null.

       -U, --binary
              Traiter les fichiers comme s’ils étaient des fichiers  binaires.
              Par défaut, sous MS-DOS et MS-Windows, grep détermine le type de
              fichier en regardant le contenu des 32 premiers kilo-octets.  Si
              grep  décide  que  le fichier est un fichier de texte, il enlève
              les retours chariot (CR) du contenu du  fichier  original  (afin
              que  les  expressions  avec  ^  et $ fonctionnent correctement).
              L’option -U modifie ce  comportement,  tous  les  fichiers  sont
              alors lus et traités tels quels. Si le fichier est un fichier de
              texte avec des paires CR-LF en fin de ligne,  certaines  expres‐
              sions rationnelles peuvent échouer. Cette option n’a aucun effet
              sur des plates-formes autres que MS-DOSet MS-Windows.

       -u, --unix-byte-offsets
              Afficher la position relative en octets dans le style Unix. Avec
              cette  option, grep affiche la position relative en octets comme
              si  le  fichier  était  un  fichier  de  texte  de  type   Unix,
              c’est-à-dire  avec  les  caractères  CR  supprimés.  Ceci permet
              d’avoir un résultat identique à celui retourné par grep sur  une
              machine  Unix. Cette option n’a d’effet que si elle est utilisée
              conjointement avec l’option -b, et sur  une  machine  MS-DOS  ou
              MS-Windows.

       -V, --version
              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 bogues (voir ci-dessous).

       -v, --invert-match
              Inverser la mise en concordance, pour sélectionner les lignes ne
              correspondant pas au motif.

       -w, --word-regexp
              Ne sélectionner que les lignes contenant des  concordances  for‐
              mant  des mots complets. La sous-chaîne correspondante doit donc
              soit se trouver au début de la ligne, soit  être  précédée  d’un
              caractère  ne  pouvant  entrer dans la constitution d’un mot. De
              même, elle doit soit se trouver à la fin de la ligne, soit  être
              suivie  par  un caractère ne pouvant entrer dans la constitution
              d’un mot. Les caractères composant les mots  sont  les  lettres,
              les chiffres et le souligné « _ ».

       -x, --line-regexp
              Ne  sélectionner  que  les concordances qui concernent une ligne
              entière.

       -y     Synonyme obsolète de -i.

       -Z, --null
              Afficher un octet nul (le caractère ASCII NUL)  à  la  place  du
              caractère  qui  suit d’ordinaire le nom du fichier. Par exemple,
              grep -lZ affiche un octet nul après chaque nom de fichier, à  la
              place  du saut de ligne. Cette option permet de rendre la sortie
              non ambiguë, même quand les noms  de  fichiers  contiennent  des
              caractères  inhabituels,  comme des sauts de ligne. Cette option
              peut être utilisée avec des commandes telles que  find  -print0,
              perl -0, sort -z, et xargs -0 pour traiter des fichiers avec des
              noms quelconques, même ceux contenant des sauts de ligne.

       -z, --null-data
              Considérer que l’entrée est un ensemble de lignes, chacune  ter‐
              minée  par  un  octet  nul (le caractère ASCII NUL) au lieu d’un
              saut de ligne. Comme l’option -Z ou --null,  cette  option  peut
              être  combinée avec des commandes comme sort -z pour traiter des
              fichiers ayant un nom quelconque.

EXPRESSIONS RATIONNELLES
       Une expression rationnelle est un motif qui permet de décrire un ensem‐
       ble de chaînes. Les expressions rationnelles sont construites comme des
       opérations arithmétiques ; elles utilisent différents  opérateurs  pour
       combiner des expressions plus petites.

       Grep  gère  trois styles de syntaxe pour les expressions rationnelles :
       « simple » (basic), « étendue » (extended) et « perl ». Dans la version
       GNU  de  grep,  il  n’y  a  pas  de différence dans les fonctionnalités
       disponibles pour les deux premiers styles.  Dans  d’autres  implémenta‐
       tions,  les  expressions  rationnelles simples sont moins efficaces. La
       description  ci-dessous  correspond  aux  expressions   étendues,   les
       différences  avec  les  expressions simples étant résumées ensuite. Les
       expressions rationnelles de Perl  ajoutent  des  fonctionnalités,  mais
       l’implémentation utilisée ici n’est pas documentée et n’est pas compat‐
       ible avec les autres implémentations de grep.

       Les briques élémentaires sont les expressions  rationnelles  correspon‐
       dant à un seul caractère. La plupart des caractères, y compris les let‐
       tres et les chiffres, constituent des expressions rationnelles et  con‐
       cordent  avec  eux-mêmes.  Tout  méta-caractère ayant une signification
       particulière doit être  protégé  en  le  faisant  précéder  d’une  con‐
       tre-oblique (backslash).

       Une  liste  de caractères, encadrée par [ et ] peut être mise en corre‐
       spondance avec n’importe quel caractère appartenant à la liste.  Si  le
       premier  caractère de la liste est l’accent circonflexe « ^ », alors la
       mise en correspondance se fait avec n’importe quel caractère absent  de
       la  liste.  Par exemple, l’expression rationnelle [0123456789] concorde
       avec n’importe quel chiffre.

       Entre ces crochets, un intervalle de caractères peut  être  indiqué  en
       donnant  le  premier  et le dernier caractère, séparés par un tiret. il
       correspond à n’importe quel caractère compris entre le  premier  et  le
       dernier  caractère  (ceux-ci  inclus), l’ordre des caractères dépendant
       des paramètres régionaux (locale, en anglais) en cours. Ainsi, avec  la
       valeur par défaut (« C »), [a-d] est équivalent à [abcd]. Avec beaucoup
       de paramètres régionaux, les caractères sont triés en  suivant  l’ordre
       des dictionnaires, et [a-d] n’est alors pas équivalent à [abcd], mais à
       [aBbCcDd], par exemple. Pour  que  ces  listes  aient  le  comportement
       habituel  de « C », vous pouvez positionner la variable d’environnement
       LC_ALL à la valeur C.

       Enfin, il existe certaines classes  de  caractères  prédéfinies.  Leurs
       noms sont assez explicites : [:alnum:], [:alpha:], [:cntrl:], [:digit:]
       (chiffres), [:graph:], [:lower:] (minuscules), [:print:] (affichables),
       [:punct:] (ponctuation), [:space:] (espace), [:upper:] (majuscules), et
       [:xdigit:] (chiffres hexadécimaux). Par exemple, [[:alnum:]] correspond
       à  [0-9A-Za-z],  à  la  différence  près  que  ce  dernier  dépend  des
       paramètres régionaux C et du codage de caractères ASCII, alors  que  le
       premier  est plus portable. Remarquez que les crochets dans les noms de
       classes font partie intégrante du nom  symbolique,  et  qu’ils  doivent
       donc  être  inclus  en plus des crochets encadrant la liste. La plupart
       des méta-caractères perdent leur signification particulière au sein des
       listes.Pour inclure un caractère ], mettez-le en premier dans la liste.
       De même, pour inclure un caractère ^, placez-le n’importe  où  sauf  au
       début de la liste. Enfin, pour inclure un -, placez-le en dernier.

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

       L’accent  circonflexe  « ^ »  et  le  symbole  dollar  « $ »  sont  des
       méta-caractè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.

       Dans  une expression rationnelle, un caractère peut être suivi par l’un
       des opérateurs de répétition suivants :
       ?      L’élément précédent est facultatif et  peut  être  rencontré  au
              plus une fois.
       *      L’élément  précédent peut être rencontré zéro ou plusieurs fois.
       +      L’élément précédent peut être rencontré une ou plusieurs fois.
       {n}    L’élément précédent doit correspondre exactement n fois.
       {n,}   L’élément précédent doit correspondre n fois ou plus.
       {n,m}  L’élément précédent doit correspondre au moins n fois,  mais  au
              plus m fois.

       Deux  expressions  rationnelles peuvent être juxtaposées ; l’expression
       résultante correspondra à toute chaîne formée par la  juxtaposition  de
       deux sous-chaînes correspondant respectivement aux deux expressions.

       Deux  expressions  rationnelles  peuvent  être  reliées par l’opérateur
       infixe | ; l’expression résultante correspondra à toute chaîne qui com‐
       porte l’une ou l’autre des deux expressions.

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

       La  référence  inverse  \n, où n est un chiffre unique, correspond à la
       sous-chaîne déjà mise en correspondance avec la n-ième  sous-expression
       rationnelle entre parenthèses.

       Dans les expressions rationnelles simples, les méta-caractères ?, +, {,
       |, (, et ) perdent leur signification spéciale, il faut utiliser  à  la
       place leur version avec la contre-oblique \?, \+, \{, \|, \(, et \).

       La  version  traditionnelle d’egrep ne connaît pas le méta-caractère {,
       et certaines implémentations d’egrep utilisent \{ à la place,  si  bien
       que  des  scripts  shell  portables  devraient éviter { dans les motifs
       d’egrep et utiliser [{] pour désigner un caractère {.

       GNU egrep essaie d’émuler l’usage traditionnel en supposant que { n’est
       pas spécial au cas où il rendrait invalide l’expression qu’il commence.
       Par exemple, la commande shell egrep ’{1’ recherche la chaîne  composée
       des  deux  caractères  {1  au  lieu  de signaler une erreur de syntaxe.
       POSIX.2 permet ce comportement comme une extension à la norme, mais les
       scripts portables devraient l’éviter.

VARIABLES D’ENVIRONNEMENT
       Le  comportement  de grep est modifié par les variables d’environnement
       suivantes :

       LC_ALL, LC_truc, LANG, dans cet ordre. La variable positionnée en  pre‐
       mier  détermine  le  choix  des  paramètres  régionaux. Par exemple, si
       LC_ALL n’est pas positionnée, mais LC_MESSAGES  vaut  fr_FR,  alors  le
       français  est  utilisé  pour l’affichage des messages. Par défaut « C »
       est utilisée si aucune variable d’environnement n’est  trouvée,  si  le
       catalogue des paramètres régionaux n’est pas installé ou bien si grep a
       été compilé sans le support pour les langues nationales (NLS).

       GREP_OPTIONS
              Cette variable définit des options  qui  seront  ajoutées  avant
              n’importe  quelle  option explicite de la ligne de commande. Par
              exemple,  si  GREP_OPTIONS  vaut  « --binary-files=without-match
              --directories=skip », grep se comporte comme si les deux options
              --binary-files=without-match et --directories=skip  avaient  été
              spécifiées  avant  les  options  explicites. Différentes options
              peuvent être séparées par des  espaces,  et  une  contre-oblique
              supprime  la signification spéciale du caractère suivant, ce qui
              permet de spécifier une option contenant une espace ou une  con‐
              tre-oblique.

       GREP_COLOR
              Cette variable spécifie les couleurs pour la mise en relief.

       LC_ALL, LC_COLLATE, LANG
              Ces  variables spécifient le choix des paramètres régionaux pour
              LC_COLLATE, qui détermine l’ordre des  caractères  utilisé  dans
              des intervalles tels que [a-z].

       LC_ALL, LC_CTYPE, LANG
              Ces  variables spécifient le choix des paramètres régionaux pour
              LC_CTYPE qui détermine le  codage  de  caractères  utilisé,  par
              exemple  pour  indiquer  quels  caractères sont considérés comme
              étant des espaces.

       LC_ALL, LC_MESSAGES, LANG
              Ces variables spécifient le choix des paramètres régionaux  pour
              LC_MESSAGES,  qui détermine la langue utilisée par grep pour ses
              messages. Par défaut, avec « C », les messages sont  en  anglais
              américain.

       POSIXLY_CORRECT
              Si  cette  variable  est  positionnée,  grep  se  comporte comme
              indiqué dans la norme POSIX.2.  Sinon,  grep  se  comporte  plus
              comme  les  autres  programmes  GNU.  POSIX.2  requiert  que les
              options qui suivent des  noms  de  fichiers  soient  considérées
              aussi  comme  des noms de fichiers. Par défaut, ces options sont
              déplacées avant la liste des opérandes et  sont  traitées  comme
              des  options.  POSIX.2 requiert aussi que les options non recon‐
              nues soient considérées comme « illégales » ; mais  comme  elles
              n’enfreignent  pas  vraiment  les  règles, elles sont rapportées
              comme étant « invalides » par défaut. POSIXLY_CORRECT  désactive
              aussi  l’option  _N_GNU_nonoption_argv_flags_,  qui  est décrite
              plus bas.

       _N_GNU_nonoption_argv_flags_
              (Ici, N est l’identifiant numérique du processus de grep). Si le
              i-ième  caractère de la valeur de cette variable d’environnement
              vaut 1, le i-ième opérande de grep  n’est  pas  considéré  comme
              étant  une option, même s’il semble l’être. Un shell peut placer
              cette variable dans l’environnement de chaque  commande  lancée,
              pour  spécifier quels opérandes sont le résultat du remplacement
              de méta-caractères et ne doivent donc pas être considérés  comme
              des  options.  Ce  comportement  n’est  présent  qu’avec la bib‐
              liothèque C de GNU, et seulement si  POSIXLY_CORRECT  n’est  pas
              positionnée.

DIAGNOSTICS
       Normalement,  le  code  de  retour  est  0  si des concordances ont été
       trouvées, et 1 si aucune concordances n’a été faite. Mais le code  vaut
       2  si  une  erreur est survenue, à moins que les options -q, --quiet ou
       --silent ne soient utilisées et qu’une ligne ne soit trouvée.

BOGUES
       Envoyez   les   rapports   de   bogue   ([ndt]    en    anglais !)    à
       bug-gnu-utils@gnu.org.  Assurez-vous  d’inclure le mot « grep » dans le
       sujet du message.

       Dans les constructions {n,m} de grandes valeurs de  répétition  peuvent
       pousser  grep  à  utiliser  beaucoup  de  mémoire. D’autres expressions
       rationnelles tordues peuvent prendre un temps très long et mener à  une
       insuffisance de mémoire.

       Les  références  inverses sont très lentes et peuvent demander un temps
       très important.

TRADUCTION
       Cette page de manuel a été traduite par Christophe Blaess  en  1997  et
       mise  à jour par Denis Barbier jusqu’en 2005.  La version présente dans
       Debian est dorénavant maintenue par Luc Froidefond <luc DOT  froidefond
       AT free DOT fr> et les membres de la liste <debian-l10n-french AT lists
       DOT debian DOT org>.  Veuillez signaler toute erreur de traduction  par
       un rapport de bogue sur le paquet manpages-fr-extra.



Projet GNU                        2002/01/22                           GREP(1)