Manuels pour la ligne de commande

Man » Manuel de grep en ligne - documentation en ligne détaillée pour la page de manuel grep

🌍
grep, egrep, fgrep, rgrep - afficher les lignes qui correspondent aux motifs.

SYNTAXE

grep [OPTION]... MOTIFS [FICHIER]...
grep [OPTION]... -e MOTIFS ... [FICHIER]...
grep [OPTION]... -f FICHIER_MOTIFS ... [FICHIER]...

DESCRIPTION

grep recherche des motifs dans chaque FICHIER. Dans la première forme du synopsis, qui est utilisée si les options -e ou -f ne sont pas présentes, le premier opérande MOTIFS est constitué d’un ou plusieurs motifs séparés par des caractères de nouvelle ligne, et grep affiche chaque ligne qui correspond à un motif. En général, MOTIFS doit être entre guillemets lorsque grep est utilisé dans une commande shell.

Un FICHIER de « - » représente l’entrée standard. Si aucun FICHIER n’est spécifié, les recherches récursives examinent le répertoire de travail et les recherches non récursives lisent l’entrée standard.

Debian inclut également les programmes variants egrep, fgrep et rgrep. Ces programmes sont identiques à grep -E, grep -F et grep -r, respectivement. Ces variants sont obsolètes en amont, mais Debian les fournit pour assurer la compatibilité avec les versions antérieures. Pour des raisons de portabilité, il est recommandé d’éviter les programmes variants et d’utiliser grep avec l’option correspondante.

OPTIONS

Informations générales sur le programme

--help Affiche un message d’utilisation et quitte.

-V, --version
Affiche le numéro de version de grep et quitte.

Syntaxe des motifs

-E, --extended-regexp
Interprète les MOTIFS comme des expressions régulières étendues (ERE, voir ci-dessous).

-F, --fixed-strings
Interprète les MOTIFS comme des chaînes fixes, et non comme des expressions régulières.

-G, --basic-regexp
Interprète les MOTIFS comme des expressions régulières de base (BRE, voir ci-dessous). C’est la valeur par défaut.

-P, --perl-regexp
Interprète les MOTIFS comme des expressions régulières compatibles Perl (PCRE). Cette option est expérimentale lorsqu’elle est combinée avec l’option -z (--null-data), et grep -P peut afficher un avertissement concernant les fonctionnalités non implémentées.

Contrôle de la correspondance

-e MOTIFS, --regexp=MOTIFS
Utilise MOTIFS comme les motifs. Si cette option est utilisée plusieurs fois ou est combinée avec l’option -f (--file), recherche tous les motifs donnés. Cette option peut être utilisée pour protéger un motif commençant par « - ».

-f FICHIER, --file=FICHIER
Obtient les motifs à partir du FICHIER, un par ligne. Si cette option est utilisée plusieurs fois ou est combinée avec l’option -e (--regexp), recherche tous les motifs donnés. Le fichier vide contient zéro motif et, par conséquent, ne correspond à rien. Si FICHIER est -, lit les motifs à partir de l’entrée standard.

-i, --ignore-case
Ignore les distinctions de casse dans les motifs et les données d’entrée, de sorte que les caractères qui ne diffèrent que par la casse se correspondent.

--no-ignore-case
N’ignore pas les distinctions de casse dans les motifs et les données d’entrée. C’est la valeur par défaut. Cette option est utile pour la transmission à des scripts shell qui utilisent déjà -i, afin d’annuler ses effets, car les deux options s’annulent mutuellement.

-v, --invert-match

Inverser le sens de la correspondance, afin de sélectionner les lignes qui ne correspondent pas.

-w, --word-regexp

Sélectionner uniquement les lignes contenant des correspondances qui forment des mots entiers. Le test consiste à ce que la sous-chaîne correspondante soit soit au début de la ligne, soit précédée d'un caractère non constitutif d'un mot. De même, elle doit être soit à la fin de la ligne, soit suivie d'un caractère non constitutif d'un mot. Les caractères constitutifs d'un mot sont les lettres, les chiffres et le caractère de soulignement. Cette option n'a aucun effet si -x est également spécifié.

-x, --line-regexp

Sélectionner uniquement les correspondances qui correspondent exactement à toute la ligne. Pour un motif d'expression régulière, cela revient à placer le motif entre parenthèses, puis à l'entourer de ^ et $.

Contrôle général de la sortie

-c, --count

Supprimer la sortie normale ; à la place, afficher le nombre de lignes correspondantes pour chaque fichier d'entrée. Avec l'option -v, --invert-match (voir ci-dessus), afficher le nombre de lignes qui ne correspondent pas.

--color[=WHEN], --colour[=WHEN]

Entourer les chaînes correspondantes (non vides), les lignes correspondantes, les lignes de contexte, les noms de fichiers, les numéros de ligne, 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 afin de les afficher en couleur dans le terminal. Les couleurs sont définies par la variable d'environnement GREP_COLORS. WHEN peut être never, always ou auto.

-L, --files-without-match

Supprimer la sortie normale ; afficher à la place le nom de chaque fichier d'entrée à partir duquel aucune sortie n'aurait normalement été affichée.

-l, --files-with-matches

Supprimer la sortie normale ; afficher à la place le nom de chaque fichier d'entrée à partir duquel une sortie aurait normalement été affichée. L'analyse de chaque fichier d'entrée s'arrête après la première correspondance.

-m NUM, --max-count=NUM

Arrêter la lecture d'un fichier après NUM lignes correspondantes. Si NUM est égal à zéro, grep arrête immédiatement la lecture des entrées. Une valeur de NUM de -1 est traitée comme l'infini, et grep ne s'arrête pas ; c'est la valeur par défaut. Si l'entrée provient d'un fichier ordinaire via l'entrée standard, et que NUM lignes correspondantes sont affichées, grep s'assure que l'entrée standard est positionnée juste après la dernière ligne correspondante avant de quitter, quelles que soient les lignes de contexte suivantes. Cela permet à un processus appelant de reprendre la recherche. Lorsque grep s'arrête après NUM lignes correspondantes, il affiche les lignes de contexte suivantes. Lorsque l'option -c ou --count est également utilisée, grep n'affiche pas un nombre supérieur à NUM. Lorsque l'option -v ou --invert-match est également utilisée, grep s'arrête après avoir affiché NUM lignes qui ne correspondent pas.

-o, --only-matching

Afficher uniquement les parties correspondantes (non vides) d'une ligne correspondante, chaque partie étant affichée sur une ligne de sortie distincte.

-q, --quiet, --silent

Mode silencieux ; ne rien écrire sur la sortie standard. Quitter immédiatement avec un code de retour nul si une correspondance est trouvée, même si une erreur a été détectée. Voir également l'option -s ou --no-messages.


-s, --no-messages

Supprime les messages d’erreur concernant les fichiers inexistants ou illisibles.

Contrôle du préfixe de ligne de sortie

-b, --byte-offset

Affiche le décalage d’octet (base 0) dans le fichier d’entrée avant chaque ligne de sortie. Si -o (--only-matching) est spécifié, affiche le décalage de la partie correspondante.

-H, --with-filename

Affiche le nom de fichier pour chaque correspondance. C’est la valeur par défaut lorsqu’il y a plus d’un fichier à rechercher. Il s’agit d’une extension GNU.

-h, --no-filename

Supprime l’ajout du nom de fichier en sortie. C’est la valeur par défaut lorsqu’il n’y a qu’un seul fichier (ou uniquement une entrée standard) à rechercher.

--label=LABEL

Affiche l’entrée provenant de l’entrée standard comme si elle provenait du fichier LABEL. Cela peut être utile pour les commandes qui transforment le contenu d’un fichier avant de le rechercher, par exemple, gzip -cd foo.gz | grep --label=foo -H « un certain motif ». Voir également l’option -H.

-n, --line-number

Ajoute le numéro de ligne (base 1) dans le fichier d’entrée avant chaque ligne de sortie.

-T, --initial-tab

S’assure que le premier caractère du contenu réel de la ligne se trouve sur un arrêt de tabulation, afin que l’alignement des tabulations soit normal. Ceci est utile avec les options qui ajoutent un préfixe à leur sortie vers le contenu réel : -H, -n et -b. Afin d’améliorer la probabilité que les lignes d’un même fichier commencent toutes à la même colonne, cela entraîne également l’impression du numéro de ligne et du décalage d’octet (si présents) dans une largeur de champ minimale.

-Z, --null

Affiche un octet nul (le caractère NUL ASCII) au lieu du caractère qui suit normalement un nom de fichier. Par exemple, grep -lZ affiche un octet nul après chaque nom de fichier au lieu de la nouvelle ligne habituelle. Cette option rend la sortie non ambiguë, même en présence de noms de fichiers contenant des caractères inhabituels tels que des nouvelles lignes. Cette option peut être utilisée avec des commandes telles que find -print0, perl -0, sort -z et xargs -0 pour traiter des noms de fichiers arbitraires, même ceux qui contiennent des caractères de nouvelle ligne.

Contrôle des lignes de contexte

-A NUM, --after-context=NUM

Affiche NUM lignes de contexte suivant les lignes correspondantes. Place une ligne contenant un séparateur de groupe (--) entre les groupes de correspondances contiguës. Avec les options -o ou --only-matching, cela n’a aucun effet et un avertissement est donné.

-B NUM, --before-context=NUM

Affiche NUM lignes de contexte précédant les lignes correspondantes. Place une ligne contenant un séparateur de groupe (--) entre les groupes de correspondances contiguës. Avec les options -o ou --only-matching, cela n’a aucun effet et un avertissement est donné.

-C NUM, -NUM, --context=NUM

Affiche NUM lignes de contexte. Place une ligne contenant un séparateur de groupe (--) entre les groupes de correspondances contiguës. Avec les options -o ou --only-matching, cela n’a aucun effet et un avertissement est donné.

--group-separator=SEP

Lorsque -A, -B ou -C sont utilisés, affiche SEP au lieu de -- entre les groupes de lignes.

--no-group-separator

Lorsque -A, -B ou -C sont utilisés, n’affiche pas de séparateur entre les groupes de lignes.


Sélection de fichiers et de répertoires

-a, --text
Traite un fichier binaire comme s'il était un fichier texte ; cela équivaut à l'option --binary-files=text.

--binary-files=TYPE
Si les données ou les métadonnées d'un fichier indiquent que le fichier contient des données binaires, suppose que le fichier est de type TYPE. Les octets non-texte indiquent des données binaires ; ce sont soit des octets de sortie mal encodés pour la locale actuelle, soit des octets d'entrée nuls lorsque l'option -z n'est pas donnée.

Par défaut, TYPE est binaire, et grep supprime la sortie après avoir détecté des données binaires d'entrée nulles, et supprime les lignes de sortie qui contiennent des données mal encodées. Lorsqu'une partie de la sortie est supprimée, grep affiche un message sur la sortie standard indiquant qu'un fichier binaire correspond.

Si TYPE est sans-correspondance, lorsque grep détecte des données binaires d'entrée nulles, il suppose que le reste du fichier ne correspond pas ; cela équivaut à l'option -I.

Si TYPE est texte, grep traite un fichier binaire comme s'il était un fichier texte ; cela équivaut à l'option -a.

Lorsque le type est binaire, grep peut traiter les octets non-texte comme des délimiteurs de ligne même sans l'option -z. Cela signifie que le choix entre binaire et texte peut affecter la correspondance d'un motif dans un fichier. Par exemple, lorsque le type est binaire, le motif q$ peut correspondre à q immédiatement suivi d'un octet nul, même si cela n'est pas mis en correspondance lorsque le type est texte. Inversement, lorsque le type est binaire, le motif . (point) peut ne pas correspondre à un octet nul.

Avertissement : L'option -a peut générer une sortie binaire, ce qui peut avoir des effets secondaires désagréables si la sortie est un terminal et si le pilote du terminal interprète une partie de celle-ci comme des commandes. D'autre part, lors de la lecture de fichiers dont l'encodage de texte est inconnu, il peut être utile d'utiliser -a ou de définir LC_ALL='C' dans l'environnement, afin de trouver plus de correspondances, même si ces correspondances ne sont pas sans danger pour un affichage direct.

-D ACTION, --devices=ACTION
Si un fichier d'entrée est un périphérique, une FIFO ou une socket, utilisez ACTION pour le traiter. Par défaut, ACTION est lecture, ce qui signifie que les périphériques sont lus comme s'il s'agissait de fichiers ordinaires. Si ACTION est ignorer, les périphériques sont ignorés silencieusement.

-d ACTION, --directories=ACTION
Si un fichier d'entrée est un répertoire, utilisez ACTION pour le traiter. Par défaut, ACTION est lecture, c'est-à-dire que les répertoires sont lus comme s'il s'agissait de fichiers ordinaires. Si ACTION est ignorer, les répertoires sont ignorés silencieusement. Si ACTION est récursif, lisez tous les fichiers sous chaque répertoire, récursivement, en suivant les liens symboliques uniquement s'ils sont sur la ligne de commande. Cela équivaut à l'option -r.

--exclude=GLOB
Ignore tout fichier de la ligne de commande dont le nom suffixe correspond au motif GLOB, en utilisant la correspondance par caractères génériques ; un suffixe de nom est soit le nom entier, soit une partie de fin qui commence par un caractère autre qu'une barre oblique (/) dans le nom. Lors de la recherche récursive, ignore tout sous-fichier dont le nom de base correspond à GLOB ; le nom de base est la partie après la dernière barre oblique. Un motif peut utiliser *, ?, et [...] comme caractères génériques, et \ pour citer un caractère générique ou une barre oblique littéralement.

--exclude-from=FICHIER
Ignore les fichiers dont le nom de base correspond à l’un des motifs de nom de fichier lus à partir du FICHIER (en utilisant la correspondance par caractères génériques comme décrit dans --exclude).

--exclude-dir=MOTIF
Ignore tout répertoire de la ligne de commande dont le suffixe de nom correspond au MOTIF. Lors de la recherche récursive, ignore tout sous-répertoire dont le nom de base correspond à MOTIF. Ignore les barres obliques de fin redondantes dans MOTIF.

-I
Traitez un fichier binaire comme s’il ne contenait pas de données correspondantes ; cela équivaut à l’option --binary-files=without-match.

--include=MOTIF
Recherchez uniquement les fichiers dont le nom de base correspond au MOTIF (en utilisant la correspondance par caractères génériques comme décrit dans --exclude). Si des options --include et --exclude contradictoires sont données, la dernière option correspondante est prise en compte. Si aucune option --include ou --exclude ne correspond, un fichier est inclus, à moins que la première option soit --include.

-r, --recursive
Lisez tous les fichiers sous chaque répertoire, de manière récursive, en suivant les liens symboliques uniquement s’ils se trouvent dans la ligne de commande. Notez que si aucun fichier n’est spécifié, grep recherche dans le répertoire de travail. Cela équivaut à l’option -d recurse.

-R, --dereference-recursive
Lisez tous les fichiers sous chaque répertoire, de manière récursive. Suivez tous les liens symboliques, contrairement à -r.

Autres options

--line-buffered
Utilisez la mise en mémoire tampon par ligne pour la sortie. Cela peut entraîner une pénalité de performance.

-U, --binary
Traitez les fichiers comme des fichiers binaires. Par défaut, sous MS-DOS et MS-Windows, grep suppose si un fichier est un fichier texte ou un fichier binaire, comme décrit pour l’option --binary-files. Si grep décide que le fichier est un fichier texte, il supprime les caractères CR du contenu du fichier d’origine (pour que les expressions régulières avec ^ et $ fonctionnent correctement). La spécification de -U annule cette supposition, ce qui fait que tous les fichiers sont lus et transmis à un mécanisme de correspondance tel quel ; si le fichier est un fichier texte avec des paires CR/LF à la fin de chaque ligne, cela entraînera l’échec de certaines expressions régulières. Cette option n’a aucun effet sur les plateformes autres que MS-DOS et MS-Windows.

-z, --null-data
Traitez les données d’entrée et de sortie comme des séquences de lignes, chacune se terminant 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 utilisée avec des commandes telles que sort -z pour traiter des noms de fichiers arbitraires.

EXPRESSIONS RÉGULIÈRES

Une expression régulière est un motif qui décrit un ensemble de chaînes de caractères. Les expressions régulières sont construites de manière analogue aux expressions arithmétiques, en utilisant divers opérateurs pour combiner des expressions plus petites.

grep prend en charge trois versions différentes de la syntaxe des expressions régulières : « basique » (BRE), « étendue » (ERE) et « perl » (PCRE). Dans GNU grep, les expressions régulières basiques et étendues ne sont que des notations différentes pour la même fonctionnalité de correspondance de motifs. Dans d’autres implémentations, les expressions régulières basiques sont généralement moins puissantes que les expressions régulières étendues, bien que parfois ce soit le contraire. La description suivante s’applique aux expressions régulières étendues ; les différences pour les expressions régulières basiques sont résumées plus tard. Les expressions régulières compatibles Perl ont une fonctionnalité différente et sont documentées dans pcre2syntax(3) et pcre2pattern(3), mais ne fonctionnent que si la prise en charge de PCRE est activée.

Les éléments de base sont les expressions régulières qui correspondent à un seul caractère. La plupart des caractères, y compris toutes les lettres et tous les chiffres, sont des expressions régulières qui correspondent à eux-mêmes. Tout métacaractère ayant une signification particulière peut être précédé d'une barre oblique inverse pour en indiquer le caractère littéral.

Le point . correspond à n'importe quel caractère unique. Il n'est pas précisé s'il correspond à une erreur d'encodage.

Classes de caractères et expressions entre crochets

Une expression entre crochets est une liste de caractères délimitée par [ et ]. Elle correspond à n'importe quel caractère unique de cette liste. Si le premier caractère de la liste est le symbole ^, alors elle correspond à n'importe quel caractère qui ne figure pas dans la liste ; il n'est pas précisé si elle correspond à une erreur d'encodage. Par exemple, l'expression régulière [0123456789] correspond à n'importe quel chiffre unique.

Dans une expression entre crochets, une expression de plage est constituée de deux caractères séparés par un tiret. Dans les paramètres régionaux C par défaut, elle correspond à n'importe quel caractère unique qui apparaît entre les deux caractères dans l'ordre ASCII, inclusivement. Par exemple, [a-d] est équivalent à [abcd]. Dans d'autres paramètres régionaux, le comportement n'est pas spécifié : [a-d] peut être équivalent à [abcd] ou à [aBbCcDd] ou à une autre expression entre crochets, ou elle peut ne pas correspondre à aucun caractère, ou l'ensemble des caractères auxquels elle correspond peut être erratique, ou elle peut être invalide. Pour obtenir l'interprétation traditionnelle des expressions entre crochets, vous pouvez utiliser les paramètres régionaux C en définissant la variable d'environnement LC_ALL sur la valeur C.

Enfin, certaines classes de caractères nommées sont prédéfinies dans les expressions entre crochets, comme suit. Leurs noms sont explicites, et ils sont les suivants : [:alnum:], [:alpha:], [:blank:], [:cntrl:], [:digit:], [:graph:], [:lower:], [:print:], [:punct:], [:space:], [:upper:] et [:xdigit:]. Par exemple, [[:alnum:]] signifie la classe de caractères des nombres et des lettres dans les paramètres régionaux actuels. Dans les paramètres régionaux C et l'encodage de caractères ASCII, cela est identique à [0-9A-Za-z]. (Notez que les crochets dans ces noms de classes font partie des noms symboliques et doivent être inclus en plus des crochets qui délimitent l'expression entre crochets). La plupart des métacaractères perdent leur signification particulière à l'intérieur des expressions entre crochets. Pour inclure un crochet littéral ], placez-le en premier dans la liste. De même, pour inclure un symbole ^ littéral, placez-le n'importe où sauf en premier. Enfin, pour inclure un tiret littéral -, placez-le en dernier.

Ancrage

Les symboles ^ et $ sont des métacaractères qui correspondent respectivement à la chaîne vide au début et à la fin d'une ligne.

Le caractère barre oblique inverse et les expressions spéciales

Les symboles \< et \\> correspondent respectivement à la chaîne vide au début et à la fin d'un mot. Le symbole \b correspond à la chaîne vide à la limite d'un mot, et \B correspond à la chaîne vide à condition qu'elle ne se trouve pas à la limite d'un mot. Le symbole \w est un synonyme de [_[:alnum:]] et \W est un synonyme de [^_[:alnum:]].


Répétition

Une expression régulière peut être suivie de l'un des opérateurs de répétition suivants : ? L'élément précédent est facultatif et correspond au maximum une fois. * L'élément précédent correspondra zéro ou plusieurs fois. + L'élément précédent correspondra une ou plusieurs fois. {n} L'élément précédent correspond exactement n fois. {n,} L'élément précédent correspond n fois ou plus. {,m} L'élément précédent correspond au maximum m fois. Il s'agit d'une extension GNU. {n,m} L'élément précédent correspond au moins n fois, mais au plus m fois.

Concaténation

Deux expressions régulières peuvent être concaténées ; l'expression régulière résultante correspond à toute chaîne formée en concaténant deux sous-chaînes qui correspondent respectivement aux expressions concaténées.

Alternative

Deux expressions régulières peuvent être jointes par l'opérateur infixe ; l'expression régulière résultante correspond à toute chaîne correspondant à l'une ou l'autre des expressions alternatives.

Précedence

La répétition a la priorité sur la concaténation, qui a à son tour la priorité sur l'alternative. Une expression entière peut être placée entre parenthèses afin d'annuler ces règles de précédence et de former une sous-expression.

Références et sous-expressions

La référence arrière \n, où n est un seul chiffre, correspond à la sous-chaîne correspondant précédemment à la nième sous-expression entre parenthèses de l'expression régulière.

Expressions régulières de base par rapport aux expressions régulières étendues

Dans les expressions régulières de base, les métacaractères ?, +, {, |, (, et ) perdent leur signification particulière ; utilisez plutôt les versions avec un antislash : \?, +, {, |, (.

STATUT DE SORTIE

Normalement, le statut de sortie est 0 si une ligne est sélectionnée, 1 si aucune ligne n'a été sélectionnée et 2 si une erreur s'est produite. Toutefois, si les options -q ou --quiet ou --silent sont utilisées et qu'une ligne est sélectionnée, le statut de sortie est 0 même si une erreur s'est produite.

ENVIRONNEMENT

Le comportement de grep est affecté par les variables d'environnement suivantes.

La locale pour la catégorie LC_foo est spécifiée en examinant les trois variables d'environnement LC_ALL, LC_foo, LANG, dans cet ordre. La première de ces variables qui est définie spécifie la locale. Par exemple, si LC_ALL n'est pas définie, mais que LC_MESSAGES est définie sur pt_BR, alors la locale portugaise du Brésil est utilisée pour la catégorie LC_MESSAGES. La locale C est utilisée si aucune de ces variables d'environnement n'est définie, si le catalogue de locale n'est pas installé ou si grep n'a pas été compilé avec la prise en charge des langues (NLS). La commande shell locale -a répertorie les locales actuellement disponibles.

GREP\_COLORS

Contrôle la façon dont l'option --color met en surbrillance la sortie. Sa valeur est une liste séparée par des deux-points des capacités qui, par défaut, est ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36, les capacités booléennes rv et ne étant omises (c'est-à-dire, fausses). Les capacités prises en charge sont les suivantes.


sl=   SGR   sous-chaîne pour les lignes sélectionnées entières (c’est-à-dire les lignes correspondantes lorsque l’option de ligne de commande -v est omise, ou les lignes ne correspondant pas lorsque -v est spécifiée). Cependant, si la capacité booléenne rv et l’option de ligne de commande -v sont toutes deux spécifiées, elle s’applique aux lignes de contexte correspondantes. La valeur par défaut est vide (c’est-à-dire la paire de couleurs par défaut du terminal).

cx=   SGR   sous-chaîne pour les lignes de contexte entières (c’est-à-dire les lignes ne correspondant pas lorsque l’option de ligne de commande -v est omise, ou les lignes correspondantes lorsque -v est spécifiée). Cependant, si la capacité booléenne rv et l’option de ligne de commande -v sont toutes deux spécifiées, elle s’applique aux lignes non correspondantes sélectionnées. 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 (échange) les significations des capacités sl= et cx= lorsque l’option de ligne de commande -v est spécifiée. La valeur par défaut est false (c’est-à-dire que la capacité est omise).

mt=01;31
SGR   sous-chaîne pour le texte correspondant non vide dans n’importe quelle ligne correspondante (c’est-à-dire une ligne sélectionnée lorsque l’option de ligne de commande -v est omise, ou une ligne de contexte lorsque -v est spécifiée). Définir ceci équivaut à définir à la fois ms= et mc= sur la même valeur. La valeur par défaut est un texte en gras rouge sur le fond de ligne actuel.

ms=01;31
SGR   sous-chaîne pour le texte correspondant non vide dans une ligne sélectionnée. (Ceci n’est utilisé que lorsque l’option de ligne de commande -v est omise.) L’effet de la capacité sl= (ou cx= si rv) reste actif lorsque ceci entre en jeu. La valeur par défaut est un texte en gras rouge sur le fond de ligne actuel.

mc=01;31
SGR   sous-chaîne pour le texte correspondant non vide dans une ligne de contexte. (Ceci n’est utilisé que lorsque l’option de ligne de commande -v est spécifiée.) L’effet de la capacité cx= (ou sl= si rv) reste actif lorsque ceci entre en jeu. La valeur par défaut est un texte en gras rouge sur le fond de ligne actuel.

fn=35   SGR   sous-chaîne pour les noms de fichiers précédant tout contenu de ligne. La valeur par défaut est un texte magenta sur le fond par défaut du terminal.

ln=32   SGR   sous-chaîne pour les numéros de ligne précédant tout contenu de ligne. La valeur par défaut est un texte vert sur le fond par défaut du terminal.

bn=32   SGR   sous-chaîne pour les décalages d’octets précédant tout contenu de ligne. La valeur par défaut est un texte vert sur le fond par défaut du terminal.

se=36   SGR   sous-chaîne pour les séparateurs qui sont insérés entre les champs de ligne sélectionnée (:) ; entre les champs de ligne de contexte (-), et entre les groupes de lignes adjacentes lorsqu’un contexte non nul est spécifié (--). La valeur par défaut est un texte cyan sur le fond par défaut du terminal.

ne    Valeur booléenne qui empêche l’effacement jusqu’à la fin de la ligne à l’aide de « Effacer dans la ligne » (EL) à chaque fois qu’un élément colorisé se termine. Ceci est nécessaire sur les terminaux sur lesquels EL n’est pas pris en charge. Il 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 surbrillance choisies n’affectent pas le fond, ou lorsque EL est trop lent ou provoque trop de scintillement. La valeur par défaut est false (c’est-à-dire que la capacité est omise).

Notez que les fonctionnalités booléennes n'ont pas de partie « =... ». Elles sont omises (c'est-à-dire, fausses) par défaut et deviennent vraies lorsqu'elles sont spécifiées.

Consultez la section « Sélection de la représentation graphique (SGR) » dans la documentation du terminal de texte utilisé pour connaître les valeurs autorisées et leur signification en tant qu'attributs de caractères. Ces valeurs de sous-chaîne sont des entiers en représentation décimale et peuvent être concaténés avec des points-virgules. grep se charge de rassembler le résultat en une séquence SGR complète (\33[...m). Parmi les valeurs courantes à concaténer, on trouve : 1 pour le gras, 4 pour le souligné, 5 pour le clignotement, 7 pour l’inversion, 39 pour la couleur de premier plan par défaut, 30 à 37 pour les couleurs de premier plan, 90 à 97 pour les couleurs de premier plan en mode 16 couleurs, 38 ;5 ;0 à 38 ;5 ;255 pour les couleurs de premier plan en modes 88 couleurs et 256 couleurs, 49 pour la couleur d’arrière-plan par défaut, 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 modes 88 couleurs et 256 couleurs.

LC_ALL, LC_COLLATE, LANG

Ces variables spécifient la locale pour la catégorie LC_COLLATE, qui détermine la séquence de tri utilisée pour interpréter les expressions de plage comme [a-z].

LC_ALL, LC_CTYPE, LANG

Ces variables spécifient la locale pour la catégorie LC_CTYPE, qui détermine le type de caractères, par exemple, quels caractères sont considérés comme des espaces. Cette catégorie détermine également l’encodage des caractères, c’est-à-dire si le texte est encodé en UTF-8, ASCII ou dans un autre encodage. Dans les locales C ou POSIX, tous les caractères sont encodés en un seul octet et chaque octet est un caractère valide.

LC_ALL, LC_MESSAGES, LANG

Ces variables spécifient la locale pour la catégorie LC_MESSAGES, qui détermine la langue utilisée par grep pour les messages. La locale C par défaut utilise des messages en anglais américain.

POSIXLY_CORRECT

Si cette variable est définie, grep se comporte comme l’exige POSIX ; sinon, grep se comporte davantage comme les autres programmes GNU. POSIX exige que les options qui suivent les noms de fichiers soient traitées comme des noms de fichiers ; par défaut, ces options sont permutées au début de la liste des opérandes et sont traitées comme des options. De plus, POSIX exige que les options non reconnues soient signalées comme « illégales », mais comme elles ne sont pas vraiment illégales, la valeur par défaut consiste à les signaler comme «invalides ».

NOTES

Cette page de manuel n’est maintenue que de manière sporadique ; la documentation complète est souvent plus à jour.

Copyright 1998–2000, 2002, 2005–2025 Free Software Foundation, Inc.

Ceci est un logiciel libre ; consultez le code source pour les conditions de copie. Il n’y a AUCUNE garantie ; pas même pour la COMMERCIALISABILITÉ ou l’ADÉQUATION À UN USAGE PARTICULIER.


BUGS

Signaler les bogues

Envoyez les signalements de bogues à l’adresse de signalement des bogues. Une archive de courriels et un système de suivi des bogues sont disponibles.

Bogues connus

Des nombres de répétitions importants dans la construction {n,m} peuvent amener grep à utiliser beaucoup de mémoire. De plus, certaines autres expressions régulières obscures nécessitent un temps et un espace exponentiels et peuvent amener grep à manquer de mémoire.

Les références arrière sont très lentes et peuvent nécessiter un temps exponentiel.

EXEMPLE

L’exemple suivant affiche l’emplacement et le contenu de toute ligne contenant « f » et se terminant par « .c », dans tous les fichiers du répertoire courant dont les noms contiennent « g » et se terminent par « .h ». L’option -n affiche les numéros de ligne, l’argument -- traite les expansions de « *g*.h » commençant par « - » comme des noms de fichiers et non comme des options, et le fichier vide /dev/null fait en sorte que les noms de fichiers soient affichés même si un seul nom de fichier est de la forme « *g*.h ».

$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* définitions et prototypes pour argmatch.c

La seule ligne qui correspond est la ligne 1 de argmatch.h. Notez que la syntaxe d’expression régulière utilisée dans le modèle diffère de la syntaxe de globing que le shell utilise pour faire correspondre les noms de fichiers.

VOIR AUSSI

Pages de manuel relatives aux expressions régulières

awk(1), cmp(1), diff(1), find(1), perl(1), sed(1), sort(1), xargs(1), read(2), pcre2(3), pcre2syntax(3), pcre2pattern(3), terminfo(5), glob(7), regex(7)

Documentation complète

Une documentation complète est disponible. Si les programmes info et grep sont correctement installés sur votre site, la commande

info grep

devrait vous donner accès à la documentation complète.