GREP(1)

NOM
grep, egrep, fgrep - 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 (ou depuis l'entrée standard si aucun fichier n'est fourni, ou si un simple trait d'union - est fourni en tant que nom de fichier) les lignes correspondant à un certain MOTIF. Par défaut, grep affiche les lignes qui correspondent au motif.

De plus, il existe deux variantes du programme : egrep et fgrep. egrep est identique à grep -E. fgrep est identique à grep -F. L'invocation directe egrep ou fgrep est déconseillée mais est fournie pour permettre à d'anciennes applications de pouvoir continuer à les utiliser sans avoir besoin de les modifier.

OPTIONS

  Informations génériques du programme

--help
    Afficher un message d'utilisation résumant brièvement les options de la ligne de commande et l'adresse de signalement de bogues, puis quitter.

-V, --version
    Afficher le numéro de version de grep sur la sortie standard. Ce numéro de version doit être inclus dans tout signalement de bogues (voir plus loin).

  Matcher Selection

-E, --extended-regexp
    Interpréter le MOTIF comme une expression rationnelle étendue (ERE, voir plus loin). (-E est spécifiée par POSIX.)

-F, --fixed-strings
    Interpréter le MOTIF comme une liste de chaînes déterminées, séparées par un caractère « nouvelle ligne », chacune d'elle devant correspondre. (-F est spécifiée par POSIX.)

-G, --basic-regexp
    Interpréter le MOTIF comme une expression rationnelle simple (BRE, voir plus loin). C'est le comportement par défaut.

-P, --perl-regexp
    Interpréter le MOTIF comme une expression rationnelle perl. C'est hautement expérimental et grep -P peut avertir de fonctionalités non implémentées.

  Contrôle de correspondance

-e MOTIF, --regexp=MOTIF
    Utiliser le MOTIF comme motif. Ceci permet de protéger les motifs commençant par un trait d'union (-). (-e est spécifiée par POSIX.)

-f FICHIER, --file=FICHIER
    Lire les motifs dans le FICHIER, un motif par ligne. Un fichier vide ne contient aucun motif, si bien qu'aucune concordance n'est trouvée. (-f est spécifiée par POSIX.)

-i, --ignore-case
    Ignorer les distinctions de casse à la fois dans les MOTIF et dans les fichiers d'entrée. (-i est spécifiée par POSIX.)

-v, --invert-match
    Inverser le sens de la correspondance pour sélectionner les lignes qui ne correspondent pas. (-v est spécifiée par POSIX.)

-w, --word-regexp
    Sélectionner seulement les lignes contenant les correspondances qui forment des mots entiers. Le test est que la sous-chaîne doit soit être au début de la ligne, soit être précédée par un caractère qui ne soit pas un constituant de mot. De la même manière, elle doit être soit à la fin de la ligne, soit être suivie par un caractère qui ne soit pas un constituant de mot. Les caractères constituants de mot sont les lettres, les chiffres et le caractère souligné (« _ »).

-x, --line-regexp
    Sélectionner seulement les correspondances qui correspondent exactement à une ligne complète. (-x est spécifiée par POSIX.)

-y  Synonyme obsolète de -i.

  Contrôle général de sortie

-c, --count
    Supprimer la sortie normale ; à la place, afficher un décompte des lignes correspondantes pour chaque fichier d'entrée. Avec l'option -v, --invert-match, (voir plus loin), afficher le décompte des lignes ne correspondant pas. (-c est spécifiée par POSIX.)

--color[=QUAND], --colour[=QUAND]
    Entourer les chaînes (non vides) et les lignes correspondantes, les lignes de contexte, les noms de fichiers, les numéros de lignes, les décalages d'octets et les séparateurs (pour les champs et les 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. La variable d'environnement GREP_COLOR, dépréciée, est toujours prise en charge mais sa configuration n'a pas priorité. WHEN peut être never (jamais), always (toujours) ou auto (automatique).

-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 à l'intérieur de chaque fichier s'arrête dès la première concordance.

-l, --files-with-matches
    À la place, indiquer le nom des fichiers pour lesquels des résultats auraient été affichés. La recherche à l'intérieur de chaque fichier s'arrête dès la première concordance. (-l est spécifiée par POSIX.)

-m NOMBRE, --max-count=NOMBRE
    Arrêter la lecture d'un fichier après NOMBRE lignes correspondantes. Si l'entrée est l'entrée standard d'un fichier normal et si NOMBRE lignes correspondantes sont la sortie, grep s'assure que l'entrée standard est positionnée juste après la dernière ligne correspondate avant de quitter, indépendemment de la présence de lignes de contexte qui suivraient. Cela permet au processus appelant de reprendre une recherche. Lorsque grep s'arrête après NOMBRE lignes correspondantes, il produit en sortie toutes les lignes de contexte. Lorsque l'option -c ou --count est également utilisée, grep ne produit pas en sortie un nombre supérieur à NOMBRE. Lorsque l'option -v ou --invert-match est également utilisée, grep s'arrête après avoir poduit en sortie NOMBRE lignes ne correspondant pas.

-o, --only-matching
    Afficher seulement les parties (non vides) correspondantes d'une ligne correspondant, avec chaque partie correspondante sur une ligne séparée.

-q, --quiet, --silent
    Mode silencieux ; ne rien écrire sur la sortie standard. Sortir immédiatement avec un code de sortie nul si aucune correspondance n'est trouvée, même si une erreur a été détectée. Voir également l'option -s ou --no-messages. (-q est spécifiée par POSIX.)

-s, --no-messages
    Supprimer les messages d'erreur relatifs aux fichiers inexistants ou illisibles. Note de portabilité : contrairement à la version GNU de grep, la version Unix 7ème Édition de grep ne se conformait pas à POSIX car il manquait l'option -q et son option -s se comportait comme l'option -q de la version GNU de grep. USG-style La version grep de style USG n'avait pas non plus l'option -q mais son option -s se comportait comme la version GNU de grep. Les scripts shell conçus pour être portables ne doivent pas utiliser les options -q et -s et doivent rediriger à la place les sorties standard et d'erreur vers /dev/null. (-s est spécifiée par POSIX.)

  Contrôle du préfixe des lignes en sortie

-b, --byte-offset
    Avant chaque ligne, afficher sa position relative (en octets) au sein du fichier. Si l'option -o (--only-matching) est fournie, afficher la position relative de la partie correspondante.

-H, --with-filename
    Afficher le nom de fichier pour chaque correspondance. C'est le comportement par défaut lorsqu'il y a plus d'un fichier à analyser.

-h, --no-filename
    Supprimer le préfixage des noms de fichier sur la sortie. C'est le comportement par défaut lorsqu'il n'y a qu'un fichier (ou seulement l'entrée standard) à analyser.

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

-n, --line-number
    Préfixer chaque ligne de sortie avec son numéro de ligne dans le fichier d'entrée (la numérotation commence à 1). (-n est spécifiée par POSIX.)

-T, --initial-tab
    S'assurer que le premier caractère du contenu de la ligne effective mente sur les tabulations, ainsi, l'alignement des tabulations paraît normal. C'est utile avec les options qui préfixent leur sortie avec le contenu réel : -H,-n et -b. Afin d'améliorer la probabilité que les lignes d'un même fichier démarrent toutes à la même colonne, cela fait également que le numéro de ligne et le décalage d'octet (s'ils sont présents) soient affichés avec une largeur de champ minimum.

-u, --unix-byte-offsets
    Afficher la position relative en octets dans le style Unix. Cette option fait que grep affiche la position relative en octets comme si le fichier était un fichier texte de type Unix, c'est-à-dire avec les caractères CR supprimés. Cela produira un résultat identique à l'exécution de grep sur une machine Unix. Cette option n'a d'effet que si l'option -b est également utilisée ; elle n'a pas d'effet sur les platesformes autres que MS-DOS et MS-Windows.

-Z, --null
    Produire en sortie l'octet zéro (le caractère ASCII NUL) plutôt que le caractère qui suit normalement un nom de fichier. Par exemple, grep -lZ produit en sortie un octet zéro après chaque nom de fichier plutôt que l'habituel caractère « nouvelle ligne ». Cette option rend la sortie sans ambiguïté, même en présence de nom de fichier contenant d'inhabituels caractères comme le caractère « nouvelle ligne ». Cette option peut être utilisée avec des commandes comme find -print0, perl -0, sort -z and xargs -0 pour traiter arbitrairement les noms de fichier, même ceux qui contiennent des caractères « nouvelle ligne ».

  Contrôle des lignes de contexte

-A NOMBRE, --after-context=NOMBRE
    Afficher NOMBRE lignes de contexte supplémentaires après les lignes qui concordent. Une ligne contenant un séparateur de groupe (--) est mise entre les groupes contigus de correspondances. Utilisée avec l'option -o ou --only-matching, cette option n'a aucun effet et un avertissement est produit.

-B NOMBRE, --before-context=NOMBRE
    Afficher NOMBRE lignes de contexte supplémentaires avant les lignes qui concordent. Une ligne contenant un séparateur de groupe (--) est mise entre les groupes contigus de correspondances. Utilisée avec l'option -o ou --only-matching, cette option n'a aucun effet et un avertissement est produit.

-C NOMBRE, -NOMBRE, --context=NOMBRE
    Afficher NOMBRE lignes de contexte. Une ligne contenant un séparateur de groupe (--) est mise entre les groupes contigus de correspondances. Utilisée avec l'option -o ou --only-matching, cette option n'a aucun effet et un avertissement est produit.

-a, --text
    Traiter un fichier binaire comme s'il s'agissait de texte ; cette option est équivalente à l'option --binary-files=text.

-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, supposer que le fichier est de type TYPE. Par défaut, TYPE est binary (binaire), et soit grep affiche un message d'une ligne disant que le fichier binaire concorde, soit il n'affiche rien s'il n'y a pas concordance. Si TYPE est without-match (sans concordance), grep suppose qu'un fichier binaire ne concorde jamais. C'est équivalent à l'option -I. Si TYPE est text (texte), 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 interprète cet affichage comme étant des 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 (escamotage), les périphériques ne sont pas pris en compte et aucun message n'est affiché.

-d ACTION, --directories=ACTION
    Si le fichier est un répertoire, utiliser ACTION. Par défaut, ACTION est read (lecture), ce qui signifie que les répertoires sont lus comme des fichiers normaux. Si ACTION est skip (escamotage), les répertoires ne sont pas pris en compte et aucun message n'est affiché. Si ACTION est recurse (récursivité), grep lit tous les fichiers présents dans chaque répertoire, récursivement. C'est équivalent à l'option -r.

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

--exclude=GLOB
    Ignorer les fichiers dont le nom correspond à GLOB (en utilisant les caractères de remplacement). Un modèle de nom de fichier peut utiliser *, ?, et [...] comme caractères de remplacement et \ pour protéger un caractère de remplacement ou le caractère contre-oblique (Ndt : backslash)

--exclude-from=FILE
    Ignorer les fichiers dont le nom correspond à l'un des modèles de nom de fichiers lus dans FILE (en utilisant la concordance avec caractères de remplacement comme décrit pour --exclude).

--exclude-dir=RÉP
    Exclure les répertoires correspondant au motif RÉP des recherches récursives.

-I  Traiter un fichier binaire comme s'il ne contenait aucune concordance ; c'est équivalent à l'option --binary-files=without-match.

--include=GLOB
    Chercher dans les fichiers dont le nom correspond à GLOB (en utilisant les caractères de remplacement comme décrit pour l'option --exclude).

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

  Autres options

--line-buffered
    Utiliser la mise en mémoire-tampon de lignes sur la sortie. Cela peut détériorer les performances.

--mmap
    Si possible, utiliser la fonction système mmap(2) pour lire les données, à la place de 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 indéfini (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 platesformes autres que MS-DOS et MS-Windows.

-z, --null-data
    Taiter l'entrée comme un ensemble de lignes, chacune d'entre-elles étant termnée par l'octet zéro (le caractère ASCII NUL) plutôt qu'un caractère « nouvelle ligne ». Tout comme l'option -Z ou --null, cette option peut être utilisée avec des commandes comme sort -z pour traiter arbitrairement les noms de fichier.

EXPRESSIONS RATIONNELLES
Une expression rationnelle (regular expression) 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 comprend deux versions différentes pour la syntaxe des expressions rationnelles : « simple » (basic) et « étendue » (extended). Dans la version GNU de grep, il n'y a pas de différence dans les fonctionnalités disponibles, quelle que soit la syntaxe utilisée. Dans d'autres implantations, les expressions rationnelles simples sont moins puissantes. La description ci-dessous correspond aux expressions étendues, les différences avec les expressions simples étant résumées ensuite.

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, sont des expressions rationnelles qui concordent avec eux-mêmes. Tout méta-caractère ayant une signification spéciale doit être protégé en le faisant précéder d'une contre-oblique (backslash).

Le point . correspond à un seul caractère.

  Classes de caractère 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) en cours. Ainsi, avec la valeur par défaut (appelée « 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 usuel 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 le 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 l'expression entre crochets. La plupart des méta-caractères perdent leur signification spéciale 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.

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

  Le 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 point . correspond à n'importe quel caractère. Le symbole \w est un synonyme de [[:alnum:]] et \W un synonyme de [^[:alnum]].

  Répétition
Une expression rationnelle 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 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 être cherché exactement n fois.
{n,}
    L'élément précédent doit être cherché n fois ou plus.
{,m}
    L'élément précédent est mis en correspondance au plus m fois.
{n,m}
    L'élément précédent doit être cherché au moins n fois, mais au plus m fois.

  Concaténation
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.

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

  Priorité
Les répétitions ont priorité sur les juxtapositions. Une expression peut être entourée par des parenthèses pour modifier ces règles de priorité et former une sous-expression.

  Références inverses et sous-expression.
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.

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

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

GNU egrep -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 dans l'expression rationnelle. POSIX.2 permet ce comportement comme une extension à la norme, mais les scripts portables devraient l'éviter.

ENVIRONNEMENT
Le comportement de grep est modifié par les variables d'environnement suivantes : LC_ALL, LC_truc et 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 la locale française est utilisé pour la catégorie LC_MESSAGES. Le défaut C est utilisé 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 les options 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 un espace ou une contre-oblique.

GREP_COLOR
    Spécifie les marqueurs pour la mise en relief. Cette variable spécifie la couleur utilisée pour mettre en évidence le texte (non vide) mis en correspondance. Cette variable est dépréciée en faveur de GREP_COLORS, mais est toujours prise en charge. Les capacités mt, ms et mc de GREP_COLORS ont priorité sur elle. Elle ne peut que spécifier la coleur utilisée pour mettre en évidence le texte non vide concordant dans chaque ligne mise en correspondance (une ligne sélectionnée lorsque l'option -v est omise, ou une ligne de contexte lorsque l'option -v est spécifiée). La valeur par défaut est 01;31, qui signifie un texte d'avant-plan en rouge et en gras sur l'arrière-plan par défaut du terminal.

GREP_COLORS
    Spécifie les couleurs et autres attributs utilisés pour mettre en évidence diverses parties de la sortie. Sa valeur est une liste, séparée par des point-virgules, de capacités dont la valeur par défaut est ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 avec les capacités booléennes rv et ne omises (c'est-à-dire, faux). Les capacités prises en charge sont les suivantes :

    sl= Sous-chaînes SGR pour toutes les lignes sélectionnées (c'est-à-dire les lignes correspondantes lorsque l'option -v de la ligne de commande est omise, ou les lignes ne correspondant pas lorsque l'option -v est présente). Si toutefois la capacité booléenne rv et l'option -v sont toutes les deux spécifiées, cela s'applique aux lignes de contexte correspondantes. La valeur par défaut est rien (c'est-à-dire, la paire de couleur par défaut du terminal).

    cx= Sous-chaînes SGR pour toutes les lignes de contexte (c'est-à-dire, les lignes ne correspondant pas lorsque l'option -v de la ligne de commande est omise, ou les lignes correspondant lorsque -v est spécifiée). Si toutefois la capacité booléenne rv et l'option -v sont toutes les deux spécifiées, cela s'applique aux lignes sélectionnées ne correspondant pas. La valeur par défaut est rien (c'est-à-dire, la paire de couleur par défaut du terminal).

    rv  Valeur booléenne qui inverse (permute) les significations des capacités sl= et cx= lorsque l'option -v de la ligne de commande est spécifiée. La valeur par défaut est « faux » (c'est-à-dire, la capacité est omise).

    mt=01;31
        Sous-chaînes SGR pour du texte non vide correspondant dans n'importe quelle ligne correspondant (c'est-à-dire, une ligne sélectionnée lorsque l'option -v de la ligne de commande est omise, ou une ligne de contexte lorsque -v est spécifiée). Définir cela est équivalent à définir en même temps ms= et mc= à la même valeur. Le comportement par défaut est du texte rouge en gras en avant-plan sur la ligne actuelle d'arrière-plan.

    ms=01;31
        Sous-chaînes SGR pour du texte non vide dans une ligne sélectionnée. (Ce n'est utilisé que lorsque l'option -v de la ligne de commande est omise.) L'effet de la capacité sl= (ou cx= si rv) reste active capability remains active when this kicks in. Le comportement par défaut est du texte rouge en gras en avant-plan sur la ligne actuelle d'arrière-plan.

    mc=01;31
        Sous-chaînes SGR pour du texte non vide dans une ligne de contexte. (Ce n'est utilisé que lorsque l'option -v de la ligne de commande est omise.) L'effet de la capacité cx= (ou sl= if rv) capability remains active when this kicks in. Le comportement par défaut est du texte rouge en gras en avant-plan sur la ligne actuelle d'arrière-plan.

    fn=35
        Sous-chaînes SGR pour les noms de fichiers préfixant toute ligne de contenu. Le comportement par défaut est du texte magenta en avant-plan sur l'arrière-plan par défaut du terminal.

    ln=32
        Sous-chaînes SGR pour les numéros de lignes préfixant toute ligne de contenu. Le comportement par défaut est du texte vert en avant-plan sur l'arrière-plan par défaut du terminal.

    bn=32
        Sous-chaînes SGR pour les décalages d'octet préfixant toute ligne de contenu. Le comportement par défaut est du texte vert en avant-plan sur l'arrière-plan par défaut du terminal.

    se=36
        Sous-chaînes SGR pour les séparateurs qui sont insérés entre les champs des lignes sélectionnées (:), entre les champs de lignes de contexte, (-), et entre les groupes de lignes adjacentes lorsque un contexte non nul est spécifié. (--). Le comportement par défaut est du texte cyan en avant-plan sur l'arrière-plan par défaut du terminal.

    ne  Valeur booléenne qui empêche l'effacement en fin de ligne en utilisant « Erase in Line (EL) » à droite (\\\33[K) chaque fois qu'un élément colorisé se finit. Cela est nécessaire sur les terminaux qui ne prennent pas en charge « EL ». C'est également utile sur les terminaux pour lesquels la capacité booléenne terminfo back_color_erase (bce) ne s'applique pas, lorsque les couleurs de mise en évidence choisies n'affectent pas l'arrière-plan ou lorsque « EL » est trop lent ou provoque trop de scintillement. La valeur par défaut est « faux » (c'est-à-dire, la capacité est omise »).

    Veuillez noter que les capacités booléennes n'ont pas de partie =.... Elles sont omises (c'est-à-dire, valent « faux ») par défaut et deviennent « vrai » lorsqu'elles sont spécifiées.

    Voir la section « Select Graphic Rendition (SGR) » de la documentation du terminal texte utilisé pour les valeurs permises et leurs significations en tant qu'attribut de caractères. Ces valeurs de sous-chaînes sont des entiers en représentation décimale et peuvent être concaténées avec des points-virgules. grep prend soin d'assembler le résultat dans une séquence SGR complète (\\\33[...m). Les valeur communes à concaténer incluent 1 pour la mise en gras, 4 pour le souslignement, 5 pour le clignotement, 7 pour inverser, 39 pour la couleur par défaut de l'avant-plan, 30 à 37 pour les couleurs d'avant-plan, 90 à 97 pour les couleurs d'avant-plan en mode 16 couleurs, 38;5;0 à 38;5;255 pour les couleurs d'avant-plan en mode 88 et 256 couleurs, 49 pour la couleur par défaut de l'arrière-plan, 40 à 47 pour les couleurs d'arrière-plan, 100 à 107 pour les couleurs d'arrière-plan en mode 16 couleurs et 48;5;0 à 48;5;255 pour les couleurs d'arrière-plan en mode 88 et 256 couleurs.

LC_ALL, LC_COLLATE, LANG
    Ces variables spécifient le choix des paramètres régionaux pour la catégorie 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 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 spécifient 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. Avec le défaut C, les messages sont en 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 la loi, 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 bibliothèque C de GNU, et seulement si POSIXLY_CORRECT n'est pas positionnée.

CODE DE RETOUR

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 est 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. Veuillez noter toutefois que POSIX n'exige seulement, pour des programmes comme grep, cmp, et diff, que le code de retour en cas d'erreur soit supérieur à 1 ; il est donc recommandé, par égard pour la portabilité, d'utiliser une logique qui teste cette condition générale plutôt qu'une stricte égalité avec 2.

COPYRIGHT
Copyright © 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

BOGUES

  Signaler des bogues
Envoyez les rapports de bogue (Ndt : en anglais !) à <bug-grep@gnu.org>, une liste de diffusion dont la page web est <http://lists.gnu.org/mailman/listinfo/bug-grep>. Le suiveur de bogues Savannah de grep est situé à <http://savannah.gnu.org/bugs/?group=grep>.

  Bogues connus
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 rationnelles tordues peuvent prendre un temps très long, et mener à un manque de mémoire.

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

VOIR AUSSI

  Pages de manuel standards
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), pcrepattern(3), terminfo(5), glob(7), regex(7).

  Pages de manuel du programmeur POSIX
grep(1p)

  Documentation info
La documentation complète de grep est maintenue au format info . Si les programmes info et grep sont correctement installés sur votre machine, la commande

    info grep

vous donnera accès au manuel complet.

NOTES
« GNU's not Unix » (GNU n'est pas Unix) mais Unix est une bête ; sa forme pluriel est « Unixen ».

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 janvier 1997, mise à jour par Denis Barbier <barbier AT linuxfr DOT org> le 9 mars 2003 et révisée le 19 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 1 grep ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.