1. NOM

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

2. SYNOPSIS

grep [OPTIONS] MOTIF [FICHIER. . .]
grep [OPTIONS] [-e MOTIF | -f FICHIER] [FICHIER. . .] .

3. 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. L'appel direct à egrep ou fgrep est déconseillé, mais est toujours possible pour permettre à d'anciennes applications qui les utilisent de fonctionner sans modification. .

4. OPTIONS

4.1. Informations générales sur le programme

  • --help
        Afficher un bref message d'aide pour l'utilisation qui résume les options en ligne de commande et l'adresse pour remonter des bogues, puis quitter.
  • -V, --version
        Afficher le numéro de version de grep sur la sortie standard. Ce numéro de version devra être inclus dans tous les rapports de bogues (voir ci-dessous).

4.2. Sélection des correspondances

  • -E, --extended-regexp
        Interpréter le MOTIF comme une expression rationnelle étendue (ERE, voir ci-dessous). (-E est une spécification POSIX.)
  • -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 est une spécification POSIX.)
  • -G, --basic-regexp
        Interpréter le MOTIF comme une expression rationnelle simple (BRE, voir ci-dessous). C'est le comportement par défaut.
  • -P, --perl-regexp
        Interpréter le MOTIF comme une expression rationnelle Perl (PCRE, voir ci-dessous). Cette option est expérimentale et grep -P pourrait signaler des fonctionnalités non implémentées.

4.3. Contrôle de correspondance

  • -e MOTIF, --regexp=MOTIF
        Utiliser le MOTIF comme motif. Ceci peut être utilisé pour spécifier des motifs de recherche multiples ou protéger les motifs commençant par un tiret « - ». (-e est une spécification POSIX.)
  • -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 correspondance n'est trouvée. (-f est une spécification POSIX.)
  • -i, --ignore-case
        Ignorer la casse aussi bien dans le MOTIF que dans les fichiers. (-i est une spécification POSIX.)
  • -v, --invert-match
        Inverser la mise en correspondance, pour sélectionner les lignes ne correspondant pas au motif. (-v est une spécification POSIX.)
  • -w, --word-regexp
        Ne sélectionner que les lignes contenant des correspondances formant 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 correspondances qui concernent une ligne entière. (-x est une spécification POSIX.)
  • -y
        Synonyme obsolète de -i.

4.4. Contrôle général de l'affichage

  • -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. (-c est une spécification POSIX.)
  • --color[=QUAND], --colour[=QUAND]
        Encadrer les chaînes (non vides) des correspondances, les lignes qui correspondent, les lignes de contexte, les noms de fichiers, les numéros de lignes, les positions relatives en octets et les séparateurs (pour les champs et groupes de lignes de contexte) avec des séquences d'échappement pour les afficher en couleur sur le terminal. Les couleurs sont définies par la variable d'environnement GREP_COLORS. L'ancienne variable d'environnement GREP_COLOR est toujours gérée, mais elle a une priorité inférieure pour décider de la configuration. QUAND vaut never (jamais), always (toujours) ou auto.
  • -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 correspondance.
  • -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 correspondance. (-l est spécifiée dans POSIX)
  • -m N, --max-count=N
        Arrêter de lire un fichier après avoir trouvé N lignes sélectionnées. 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 positionné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.
  • -o, --only-matching
        N'afficher que les parties (non vides) correspondantes des lignes sélectionnées, chaque partie étant affichée sur une ligne séparée.
  • -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 correspondance est trouvée, même si une erreur est détectée. Voyez aussi l'option -s ou --no-messages. (-q est spécifiée dans POSIX)
  • -s, --no-messages
        Ne pas afficher les messages d'erreur concernant les fichiers inexistants ou illisibles. Note de portabilité : à la différence du grep de GNU, le grep de la 7e édition d'UNIX n'est pas conforme au standard POSIX, car il n'a pas d'option -q et son option -s agit comme l'option -q du grep de GNU. La version USG de grep n'avait pas non plus d'option -q, mais son option -s se comportait comme celle de la version GNU de grep. 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. (-s est spécifiée dans POSIX)

4.5. Contrôle du préfixe à l'affichage

  • -b, --byte-offset
        Afficher l'emplacement dans le fichier (qui commence à l'octet 0) devant chaque ligne de sortie. Si -o (--only-matching) est spécifiée, afficher l'emplacement de la partie qui correspond.
  • -H, --with-filename
        Afficher le nom du fichier pour chaque correspondance. C'est le comportement par défaut quand la recherche est effectuée sur plusieurs fichiers.
  • -h, --no-filename
        Ne pas afficher le nom des fichiers au début des lignes qui correspondent. C'est le comportement par défaut quand il n'y a qu'un fichier (ou que l'entrée standard) dans lequel effectuer la recherche.
  • --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 l'implémentation des outils comme zgrep, par exemple : gzip -cd foo.gz |grep --label=truc quelquechose. Consultez également l'option -H.
  • -n, --line-number
        Préfixer chaque ligne de sortie par le numéro de la ligne dans le fichier. La numérotation commence à la ligne 1. (-n est spécifiée dans POSIX)
  • -T, --initial-tab
        S'assurer que le premier caractère correspondant au contenu est placé à un emplacement d'arrêt d'une tabulation, pour que l'alignement des tabulations paraisse normal. Ceci est utile avec les options qui utilisent un préfixe avant le contenu : -H, -n et -b. Pour augmenter la probabilité que toutes les lignes d'un fichier commencent à la même colonne, cela force aussi le numéro de ligne et l'emplacement (s'ils sont présents) à être affichés dans un champ de taille minimale.
  • -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.
  • -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.

4.6. Contrôle des lignes de contexte

  • -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. Avec l'option -o ou --only-matching, ça n'a aucun effet et un avertissement est affiché.
  • -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. Avec l'option -o ou --only-matching, ça n'a aucun effet et un avertissement est affiché.
  • -C N, -N, --context=N
        Afficher N lignes de contexte. Une ligne contenant -- est insérée entre les groupes contigus de correspondances. Avec l'option -o ou --only-matching, ça n'a aucun effet et un avertissement est affiché.

4.7. Sélection de fichiers ou répertoires

  • -a, --text
        Traiter un fichier binaire comme s'il s'agissait de texte ; c'est l'équivalent de l'option --binary-files=text.
  • --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 correspondance. Si TYPE est without-match, grep considère qu'un fichier binaire ne concorde jamais. C'est équivalent à l'option -I. Si TYPE est text, grep traite un fichier binaire comme du texte. C'est équivalent à l'option -a. Attention : 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 comme s'il s'agissait de commandes.
  • -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épertoire, récursivement, en ne suivant que les liens symboliques indiqués sur la ligne de commande. C'est équivalent à l'option -r.
  • --exclude=MOTIF
        Sauter les fichiers dont le nom de fichier correspond à MOTIF (en utilisant une correspondance avec joker). Un motif de fichier peut utiliser les jokers *, ? et [...], et \ pour la protection des caractères littéraux joker ou contre-oblique.
  • --exclude-from=FICHIER
        Sauter les fichiers dont le nom de fichier correspond à un des motifs contenus dans le FICHIER (en utilisant les jokers comme décrit pour --exclude).
  • --exclude-dir=RÉP
        Exclure les répertoires qui correspondent au motif RÉP des recherches récursives.
  • -I
        Traiter un fichier binaire comme s'il ne contenait aucune correspondance ; c'est équivalent à l'option --binary-files=without-match.
  • --include=MOTIF
        Ne chercher que dans les fichiers dont le nom de fichier correspond à MOTIF (en utilisant les jokers, comme décrit pour --exclude).
  • -r, --recursive
        Lire récursivement tous les fichiers à l'intérieur de chaque répertoire, en ne suivant les liens symboliques uniquement s'ils sont indiqués sur la ligne de commande. C'est l'équivalent de l'option -d recurse.
  • -R, --dereference-recursive
        Lire récursivement tous les fichiers à l'intérieur de chaque répertoire. Suivre tous les liens symboliques, contrairement à -r.

4.8. Autres options

  • --line-buffered
        Utiliser un tampon de ligne sur le flux de sortie. Ceci peut réduire les performances.
  • --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 comportement 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.
  • -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 expressions rationnelles peuvent échouer. Cette option n'a aucun effet sur des plates-formes autres que MS-DOS et MS-Windows.
  • -z, --null-data
        Considérer que l'entrée est un ensemble de lignes, chacune terminé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. .

5. EXPRESSIONS RATIONNELLES

Une expression rationnelle est un motif qui permet de décrire un ensemble 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, BRE), « étendue » (extended, ERE) et « Perl » (PCRE). Dans la version GNU de grep, il n'y a pas de différence dans les fonctionnalités disponibles pour les styles basic et extended. Dans d'autres implémentations, les expressions rationnelles simples sont moins complètes. La description ci-dessous correspond aux expressions étendues, les différences avec les expressions simples étant résumées ensuite. Les expressions rationnelles Perl offrent des fonctionnalités supplémentaires et sont documentées dans pcresyntax(3) et pcrepattern(3), mais ne sont pas disponibles sur tous les systèmes.

Les briques élémentaires sont les expressions rationnelles correspondant à un seul caractère. La plupart des caractères, y compris les lettres et les chiffres, constituent des expressions rationnelles et correspondent avec eux-mêmes. Tout métacaractère ayant une signification particulière doit être protégé en le faisant précéder d'une contre-oblique (backslash).

Le point . correspond à n'importe quel caractère.

5.1. Classes de caractères et expressions entre crochets

Une liste de caractères, encadrée par [ et ] peut être mise en correspondance 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) actuels. 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 en général pas équivalent à [abcd], mais peut l'être à [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 aux chiffres et lettres pour les paramètres régionaux actuels. Dans les paramètres régionaux C et avec le codage de caractères ASCII, c'est équivalent à [0-9A-Za-z]. 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 ces expressions entre crochets. La plupart des métacaractères perdent leur signification particulière à l'intérieur d'une expression entre crochets. 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.

5.2. Ancrage

L'accent circonflexe « ^ » et le symbole dollar « $ » sont des métacaractères correspondant respectivement à une chaîne vide au début et en fin de ligne.

5.3. Caractère contre-oblique et les expressions spéciales

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. Le symbole \w est un synonyme pour [_[:alnum:]] et \W est un synonyme pour [^_[:alnum:]].

5.4. Répétitions

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.

5.5. Concaténations

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.

5.6. Alternatives

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

5.7. Priorités

Les répétitions ont priorité sur les concaténations, 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 priorité et former une expression.

5.8. Références arrières et sous-expressions

La référence arrière \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.

5.9. Expressions rationnelles basiques et étendues

Dans les expressions rationnelles simples, les métacaractè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étacaractè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 grep -E 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 grep -E {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. .

6. VARIABLES D'ENVIRONNEMENT

Le comportement de grep est modifié par les variables d'environnement suivantes :

Les paramètres régionaux pour la catégorie LC_truc est définie par les trois variables d'environnement LC_ALL, LC_truc, LANG, dans cet ordre. La variable positionnée en premier 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 contre-oblique.
  • GREP_COLOR
        Cette variable spécifie la couleur utilisée pour mettre en évidence le texte qui correspond (et n'est pas vide). Elle est dépréciée en faveur de GREP_COLORS, mais est encore prise en charge. Les capacités mt, ms et mc de GREP_COLORS sont prioritaires sur celle-ci. Cette variable ne peut que spécifier la couleur pour mettre en évidence le texte non vide concordant dans une ligne qui correspond (une ligne sélectionnée quand l'option de la ligne de commande -v n'est pas utilisée, ou une ligne de contexte quand -v est spécifiée). La valeur par défaut est 01;31, ce qui correspond à un texte rouge en gras sur le fond par défaut du terminal.
  • GREP_COLORS
        Indiquer les couleurs et autres attributs utilisés pour mettre en évidence différentes parties de la sortie. Sa valeur est une liste de capacités séparées par des deux-points, qui vaut par défaut ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 sans les capacités booléennes rv et ne (qui prennent alors la valeur « false », faux). Les capacités prises en charge sont les suivantes :
  • sl=
        Sous-chaîne SGR (« Select Graphic Rendition ») pour les lignes entières sélectionnées (c'est-à-dire les lignes qui correspondent quand l'option en ligne de commande -v n'est pas utilisée, ou les lignes qui ne correspondent pas quand -v est spécifiée). Si cependant la capacité booléenne rv et l'option en ligne de commande -v sont toutes deux indiquées, ça s'applique à la place aux lignes de contexte qui correspondent. La valeur par défaut est vide (c'est-à-dire la paire de couleurs par défaut du terminal).
  • cx=
        Sous-chaîne SGR pour les lignes de contexte entières (c'est-à-dire les lignes qui ne correspondent pas quand l'option en ligne de commande -v n'est pas utilisée, ou les lignes qui correspondent quand -v est indiquée). Si cependant la capacité booléenne rv et l'option en ligne de commande -v sont toutes deux indiquées, ça s'applique à la place aux lignes qui ne correspondent pas. La valeur par défaut est vide (c'est-à-dire la paire de couleurs par défaut du terminal).
  • rv
        Valeur booléenne qui inverse la signification des capacités sl= et cx= quand la ligne de commande -v est indiquée. La valeur par défaut est le booléen faux (c'est-à-dire la capacité est omise).
  • mt=01;31
        Sous-chaîne SGR pour le texte non vide qui correspond dans les lignes qui correspondent (c'est-à-dire une ligne sélectionnée quand l'option en ligne de commande -v n'est pas utilisée, ou une ligne de contexte quand -v est spécifiée). L'utiliser est équivalent à utiliser à la fois ms= et mc= avec la même valeur. La valeur par défaut correspond à du texte rouge en gras sur le fond de la ligne actuelle.
  • ms=01;31
        Sous-chaîne SGR pour le texte non vide qui correspond dans une ligne sélectionnée (ce n'est utilisé que quand l'option en ligne de commande -v n'est pas utilisée). L'effet de la capacité sl= (ou cx= si rv est activée) reste actif quand c'est utilisé. La valeur par défaut correspond à du texte rouge en gras sur le fond de la ligne actuelle.
  • mc=01;31
        Sous-chaîne SGR pour le texte non vide qui correspond dans les lignes de contexte (ce n'est utilisé que quand l'option en ligne de commande -v n'est pas utilisée). L'effet de la capacité cx= (ou sl= si rv est activée) reste actif quand c'est utilisé. La valeur par défaut correspond à du texte rouge en gras sur le fond de la ligne actuelle.
  • fn=35
        Sous-chaîne SGR pour les noms de fichier qui préfixent les lignes de contenu. La valeur par défaut correspond à du texte de couleur magenta sur le fond par défaut du terminal.
  • ln=32
        Sous-chaîne SGR pour les numéros de ligne qui préfixent les lignes de contenu. La valeur par défaut correspond à du texte de couleur vert sur le fond par défaut du terminal.
  • bn=32
        Sous-chaîne SGR pour les emplacements qui préfixent les lignes de contenu. La valeur par défaut correspond à du texte de couleur vert sur le fond par défaut du terminal.
  • se=36
        Sous-chaîne SGR pour les séparateurs qui sont insérés entre les champs des lignes sélectionnées (:), entre les champs des lignes de contexte (-) et entre les groupes de lignes adjacentes quand un contexte non nul est spécifié (--). La valeur par défaut correspond à du texte de couleur cyan sur le fond par défaut du terminal.
  • ne
        Valeur booléenne qui évite l'effacement de la fin de la ligne en utilisant une séquence EL (« Erase in Line », ou en français « effacement en ligne ») vers la droite (\\33[K) à chaque fois qu'un élément coloré se termine. C'est nécessaire pour les terminaux sur lesquels EL n'est pas pris en charge. Sinon, c'est aussi utile pour les terminaux sur lesquels la capacité booléenne terminfo « back_color_erase » (bce) ne s'applique pas, quand les couleurs de mise en évidence ne touchent pas à la couleur de fond, quand EL est trop lent ou cause trop de scintillements. La valeur par défaut est le booléen faux (c'est-à-dire que la capacité n'est pas activée).

Notez que les capacités booléenne n'ont pas de partie « =... ». Elles sont omises par défaut (ce qui correspond à une valeur booléenne fausse) et deviennent vrai si elles sont précisées.

Voir la section Select Graphic Rendition (SGR) dans la documentation du terminal texte utilisé pour avoir la liste des valeurs autorisées et leur signification comme attributs de caractère. Ces valeurs de sous-chaînes sont des entiers sous forme décimale et peuvent être concaténées à l'aide de points-virgules. grep se charge d'assembler le résultat en une séquence SGR complète (\\33[...m). Les valeurs courantes à concaténer sont entre autres 1 (gras), 4 (souligné), 5 (clignotant), 7 (inversé), 39 (couleur de trait par défaut), 30 à 37 (couleurs de trait), 90 à 97 (couleurs de trait en mode 16 couleurs), 38;5;0 à 38;5;255 (couleurs de trait en mode 88 et 256 couleurs), 49 (couleur de fond par défaut), 40 à 47 (couleurs de fond), 100 à 107 (couleurs de fond en mode 16 couleurs) et 48;5;0 à 48;5;255 (couleurs de fond en mode 88 et 256 couleurs).

  • LC_ALL, LC_COLLATE, LANG
        Ces variables indiquent le choix des paramètres régionaux pour la catégorie LC_COLLATE, qui détermine l'ordre des caractères utilisé pour l'interprétation des intervalles tels que [a-z].
  • LC_ALL, LC_CTYPE, LANG
        Ces variables indiquent le choix des paramètres régionaux pour la catégorie 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 indiquent le choix des paramètres régionaux pour la catégorie 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 reconnues 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étacaractères et ne doivent donc pas être considérés comme des options. Ce comportement n'est présent qu'avec la bibliothèque C de GNU, et seulement si POSIXLY_CORRECT n'est pas positionnée. .

7. CODE DE SORTIE

Le code de sortie vaut 0 si des lignes sont trouvées et 1 si aucune n'est trouvée. Si une erreur survient, le code de sortie vaut 2. (Note : pour une gestion des erreurs POSIX, vous devriez tester si le code de sortie vaut 2 ou une valeur supérieure. .

8. COPYRIGHT

Copyright 1998-2000, 2002, 2005-2012 Free Software Foundation, Inc.

Ce logiciel est libre ; voir les sources pour les conditions de reproduction. AUCUNE garantie n'est donnée, pas même la garantie implicite de COMMERCIALISATION ni d'ADÉQUATION À UN BESOIN PARTICULIER. .

9. BOGUES

9.1. Remonter des bogues

Envoyez les rapports de bogue ([ndt] en anglais !) à <>, une liste de diffusion dont la page web est <http://lists.gnu.org/mailman/listinfo/bug-grep>. Le logiciel de suivi des bogues sur Savannah de grep est situé à l'adresse <http://savannah.gnu.org/bugs/?group=grep>.

9.2. Bogues connus

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 arrières sont très lentes et peuvent demander un temps très important (exponentiel). .

10. VOIR AUSSI

10.1. Pages de manuel

awk(1), cmp(1), diff(1), find(1), gzip(1), perl(1), sed(1), sort(1), xargs(1), zgrep(1), mmap(2), read(2), pcre(3), pcresyntax(3), pcrepattern(3), terminfo(5), glob(7), regex(7).

10.2. POSIX Page de manuel du programmeur

grep(1p).

10.3. Documentation ®info

La documentation complète de grep est disponible au format ®info et peut être lue à l'adresse http://www.gnu.org/software/grep/manual/. Si info et grep sont correctement installés, la commande

info grep

devrait vous donner accès au manuel complet de grep. .

11. NOTES

Cette page de manuel est maintenue de façon intermittente. La documentation complète est mise à jour plus souvent.

GNU's not Unix, but Unix is a beast; its plural form is Unixen.

12. 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.