grep, egrep, fgrep, rgrep - Afficher les lignes correspondant
à un motif donné
grep [OPTION...] MOTIF [FICHIER...]
grep [OPTION...] -e MOTIF ... [FICHIER...]
grep [OPTION...] -f MOTIF_FICHIER ...
[FICHIER...]
grep cherche un MOTIF dans chaque FICHIER.
MOTIF est un ou plusieurs motifs séparés par un retour
à la ligne et grep affiche chaque ligne correspondant à
un motif. Généralement, MOTIF devrait être entre
guillemets lorsque grep est utilisé dans un
interpréteur de commandes.
Un fichier « - » signifie
l'entrée standard. Si aucun FICHIER n'est donné, les
recherches récursives explorent le répertoire de travail et
celles non récursives lisent l'entrée standard.
Debian fournit aussi les variantes egrep, fgrep et
rgrep. Ces programmes sont respectivement équivalentss aux
commandes grep -E, grep -F et
grep -r. Ces variantes sont obsolètes en amont mais
Debian les fournit pour assurer la rétro-compatibilité. Pour
des raisons de portabilité, il est recommandé d'éviter
ces variantes et d'utiliser plutôt grep avec les options
liées.
- --help
- Afficher un message d'utilisation et quitter.
- -V, --version
- Afficher le numéro de version de grep et quitter.
- -E,
--extended-regexp
- Interpréter le MOTIF comme une expression rationnelle
étendue (ERE, voir ci-dessous).
- -F,
--fixed-strings
- Interpréter le MOTIF comme étant une chaîne
figée, pas une expression rationnelle.
- -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). Cette option est expérimentale quand on la combine à
-z (--null-data) et grep -P pourrait signaler des
fonctionnalités non implémentées.
Contrôle de correspondance
- -e MOTIF,
--regexp=MOTIF
- Utiliser MOTIF comme motif. Si cette option est utilisée
plusieurs fois ou en combinaison avec l'option -f
(-\^-file), rechercher les motifs donnés. Cette option peut
être utilisée pour protéger un motif
commençant par « - ».
- -f FICHIER,
--file=FICHIER
- Utiliser les motifs depuis FICHIER, un par ligne. Si cette option
est utilisée plusieurs fois ou combinée avec l'option
-e (--regexp), rechercher tous les motifs donnés. Un
fichier vide ne contient pas de motif et ne donne donc aucun
résultat. Si le FILE est -, lire les motifs à
partir de l'entrée standard.
- -i,
--ignore-case
- Ignorer les distinctions de casse dans les motifs et les données
d'entrée, pour que les correspondances incluent les
caractères qui ne diffèrent que par leur casse.
- --no-ignore-case
- Ne pas ignorer les distinctions de casse dans les motifs et les
données d'entrée, c'est le comportement par défaut.
Cette option sert à dire aux scripts shell qui utilisent
déjà -i d'annuler ses effets puisque les deux options
s'outrepassent entre elles.
- -v,
--invert-match
- Inverser la mise en correspondance, pour sélectionner les lignes ne
correspondant pas au motif.
- -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é « _ ». Cette option est sans
effet si -x est également spécifié.
- -x,
--line-regexp
- Ne sélectionner que les correspondances exactes de ligne
entière. Pour un motif d'expression rationnelle, c'est comme si on
met le motif entre parenthèses et qu'on l'ancre entre ^
et $.
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.
- --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. 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é.
- -l,
--files-with-matches
- Ne pas afficher les résultats normaux. À la place, indiquer
le nom des fichiers pour lesquels un résultat aurait
été affiché. La recherche dans chaque fichier cesse
dès la première correspondance.
- -m N,
--max-count=N
- Arrêter de lire un fichier après avoir trouvé
N lignes sélectionnées. Si N est zéro,
grep s'arrête immédiatement sans lire
l'entrée. Une entrée N 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 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. Cela 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 suivantes. 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
- Silencieux ; ne rien écrire sur la sortie standard. Quitter
immédiatement avec un code zéro si une correspondance a
été trouvée même si une erreur a
été détectée. Voir aussi l'option -s ou
--no-messages.
- -s,
--no-messages
- Supprimer les messages d'erreur sur la non existence ou
l'illisibilité des fichiers.
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. C’est une extension GNU.
- -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 des outils qui modifient le contenu
d'un fichier avant la recherche, comme
gzip -cd truc.gz |grep --label=truc quelquechose.
Consultez également l'option -H.
- -n,
--line-number
- Préfixer chaque ligne de sortie par le numéro,
débutant à un, de la ligne débutant dans le
fichier.
- -T,
--initial-tab
- S'assurer que le premier caractère correspondant au contenu
réel de la ligne est placé à un emplacement
d'arrêt d'une tabulation, pour que l'alignement des tabulations
paraisse normal. Cela est utile avec les options qui utilisent un
préfixe avant le contenu réel de la ligne :
-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.
- -Z, --null
- Afficher un octet NULL (le caractère ASCII NULL) à la place
du caractère qui suit d'ordinaire le nom du fichier. Par exemple,
grep -lZ affiche un octet NULL après chaque nom de
fichier, à la place du changement 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
changements 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 changements de ligne.
Contrôle des lignes de contexte
- -A N,
--after-context=N
- Afficher les N lignes qui suivent celles 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 celles 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é.
- -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é.
- --group-separator=SEP
- Quand les options -A, -B ou -C sont utilisées,
afficher SEP à la place de -- entre les groupes de
lignes.
- --no-group-separator
- Quand les options -A, -B ou -C sont utilisées,
ne pas afficher de séparateur entre les groupes de lignes.
- -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 données ou les métadonnées d'un fichier
indiquent qu'il contient des données binaires, supposer que le
fichier est de type TYPE. Les données non textuelles
indiquent que le fichier est binaire ; ce sont soit des octets
affichés mal encodés pour la locale, soit des octets NULL
quand l'option -z n'est pas donnée.
- Par défaut, TYPE est un binary et grep
supprime l'affichage après avoir trouvé des données
NULL dans le binaire d’entrée et il supprime les lignes qui
contiennent des données mal encodées. Lorsqu'une partie de
la sortie est supprimée, grep fait suivre n’importe
quelle sortie par un message sur la sortie d'erreur standard informant de
la correspondance d’un fichier binaire.
- Si TYPE vaut without-match, quand grep trouve des
données NULL de binaire d’entrée, il suppose que le
reste du fichier ne correspond pas à la recherche ; c'est un
équivalent de l'option -I.
- Si TYPE vaut text, grep traite un fichier binaire
comme un fichier texte ; c'est un équivalent de
l'option -a.
- Quand type est binary, grep peut traiter des
données non textuelles comme des marqueurs de fin de ligne
même sans l'option -z. Cela signifie que le choix
binary versus text peut influer sur la correspondance d'un
motif à un fichier. Par exemple, quand type est
binary, le motif q$ might correspond à un
q suivi immédiatement d'un octet NULL, alors que cela ne
correspond à rien quand type est text. À
l'inverse, quand type est binary, . (point) pourrait
ne pas trouver d'octet NULL.
- Attention : l'option -a pourrait afficher des
déchets de binaire et avoir des effets indésirables si la
sortie est le terminal et que le pilote du terminal les interprète
comme des commandes. D'un autre côté, quand on lit des
fichiers à l'encodage inconnu, il peut être utile d'utiliser
-a ou de définir LC_ALL='C' dans l'environnement pour
trouver plus de correspondances même si certaines ne sont pas
sécurisées pour un affichage direct.
- -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=GLOB
- Sauter tout fichier sur la ligne de commande dont le suffixe du nom
correspond au motif GLOB, en utilisant la correspondance de
jokers ; un suffixe de nom est soit tout le nom, soit la partie qui
commence par un caractère, n’étant pas une barre
oblique, immédiatement après une barre oblique (/)
dans un nom. Lors d'une recherche récursive, sauter tous les
sous-fichiers 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 jocker et \ pour interpréter littéralement les
caractères joker ou barre oblique inversée.
- --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=GLOB
- Sauter tout répertoire sur la ligne de commande dont le suffixe de
nom correspond au motif GLOB. Lors d'une recherche
récursive, sauter tout sous-répertoire dont le nom de base
correspond à GLOB. Ignorer les barres obliques redondantes
finales dans GLOB.
- -I
- Traiter un fichier binaire comme s'il ne contenait aucune
correspondance ; c'est équivalent à l'option
--binary-files=without-match.
- --include=GLOB
- Ne rechercher que les fichiers dont le nom correspond à GLOB
(en utilisant des jokers correspondant comme décrit sous
--exclude). Si vous donnez des options --include et
--eclude contradictoires, la dernière correspondance gagne.
Si ni --include, ni --exclude ne correspondent, un fichier
est inclus à la recherche sauf si la première est
--include.
- -r,
--recursive
- Lire récursivement tous les fichiers à l'intérieur de
chaque répertoire, en ne suivant les liens symboliques que s'ils
sont indiqués sur la ligne de commande. Remarquez que si vous ne
donnez aucun opérande de fichier, grep recherche dans le
répertoire courant. 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.
- --line-buffered
- Utiliser un tampon de ligne sur le flux de sortie. Cela peut
réduire les performances.
- -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 comme cela est décrit pour l'option
--binary-files. 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
- Traiter les données d’entrée et de sortie sous forme
d’ensembles de lignes, chacune terminée par un octet NULL
(le caractère ASCII NULL) au lieu d'un changement 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.
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, les expressions rationnelles de
style basic et extended sont simplement des notations
différentes pour la même fonctionnalité de
correspondance de motif. Dans d'autres implémentations, les
expressions rationnelles basic sont normalement moins puissantes que
les extended, bien que parfois ce soit le contraire. 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 différentes et sont documentées
dans pcre2syntax(3) et pcre2pattern(3), mais ne fonctionnent
que si les PCRE sont disponibles sur le système.
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. Il n'est pas spécifié s’il correspond
avec une erreur d'encodage.
Une expression entre crochets est une liste de
caractères encadrée par un [ et un ]. Elle est
en correspondance avec n'importe quel caractère appartenant à
la liste. Si le premier caractère de la liste est un caret
« ^ », alors la mise en correspondance se
fait avec n'importe quel caractère absent de la liste ;
il n'est pas spécifié s'il correspond avec une erreur
d'encodage. Par exemple, l'expression rationnelle [0123456789]
concorde avec n'importe quel chiffre.
Entre ces crochets, un intervalle de caractères
consiste en deux caractères séparés par un tiret. Il
correspond avec n'importe quel caractère compris entre les deux
caractères caractère (ceux-ci inclus), l'ordre des
caractères dépendant des paramètres régionaux
(locale, en anglais) actuels. Ainsi, avec les paramètres 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, certaines classes de caractères
prédéfinies existent à l'intérieur de crochets
comme suit. Leurs noms sont assez explicites : [:alnum:],
[:alpha:], [:blank:], [: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.
Le caret « ^ » et le symbole
dollar « $ » sont des
métacaractères correspondant respectivement à une
chaîne vide au début et en fin de ligne.
Les symboles \< et \> correspondent
respectivement à une chaîne vide en début et en fin de
mot. Le symbole \b correspond à une chaîne vide
à l'extrémité d'un mot, et \B correspond
à une chaîne vide ne se trouvant pas à une
extrémité de mot. Le symbole \w est un synonyme pour
[_[:alnum:]] et \W est un synonyme pour
[^_[:alnum:]].
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.
- {,m}
- L'élément précédent doit correspondre au plus
m fois. C’est une extension GNU.
- {n,m}
- L'élément précédent doit correspondre au moins
n fois, mais au plus m fois.
Deux expressions rationnelles peuvent être
concaténées ; l'expression résultante
correspondra à toute chaîne formée par la
concaténation de deux sous-chaînes correspondant
respectivement aux expressions concaténées.
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.
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.
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.
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 \).
Normalement, le code de retour est 0 si des concordances
ont été trouvées, 1 si aucune concordance n'a
été trouvée et 2 si une erreur est survenue.
Toutefois, si les options -q, --quiet ou --silent sont
utilisées et si une ligne est trouvée, le code de retour est
0 même si une erreur est survenue.
Le comportement de grep est modifié par les
variables d'environnement suivantes :
Les paramètres régionaux pour la catégorie
LC_truc sont définis 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). La commande locale -a liste les
paramètres régionaux actuellement disponibles.
- GREP_COLORS
- Contrôler la manière dont l'option '--color met en
évidence 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, cela 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, cela 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 l’option de 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éennes n'ont pas de
partie « =... ». Elles sont omises par
défaut (ce qui correspond à une valeur booléenne faux)
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 spécifient les paramètres régionaux de
la catégorie LC_CTYPE, ce qui détermine le type de
caractères, par exemple, quels caractères sont des blancs.
Cette catégorie détermine aussi l'encodage de
caractères, c'est-à-dire si le texte est encodé en
UTF-8, ASCII ou un autre encodage. Avec la locale C ou POSIX, tous
les caractères sont encodés sur un octet et chaque octet est
un caractère valable.
- 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. Les
paramètres « C » utilisés par
défaut sont en anglais américain.
- POSIXLY_CORRECT
- Si cette variable est positionnée, grep se comporte comme
indiqué dans la norme POSIX. Sinon, grep se comporte plus
comme les autres programmes GNU. POSIX 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 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 « incorrectes » par
défaut.
Cette page de manuel est maintenue de façon intermittente.
La documentation complète est mise à jour plus souvent.
Copyright 1998-2000, 2002, 2005-2023 Free Software Foundation,
Inc.
C'est un logiciel libre ; consultez les sources pour les
conditions de copie. Il n'y a AUCUNE garantie ; même pas de
VALEUR MARCHANDE ou d'ADÉQUATION À UNE UTILISATION
PARTICULIÈRE.
Envoyez par courriel les signalements de bogues à l'adresse
⟨bug-grep@gnu.org⟩. Une archive de courrier
électronique
⟨https://lists.gnu.org/mailman/listinfo/bug-grep⟩ et un
gestionnaire de bogues
⟨https://debbugs.gnu.org/cgi/pkgreport.cgi?package=grep⟩ sont
disponibles.
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).
L'exemple suivant affiche l'emplacement et le contenu de n'importe
quelle ligne contenant « f » et se terminant par
« .c » dans tous les fichiers du
répertoire courant dont le nom contient
« g » et se termine 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 fichier, pas des
options, et le fichier /dev/null fait en sorte que les noms de
fichier soient affichés même si un seul nom de fichier a la
forme « *g*.h ».
$ grep -n -- 'f.*\.c$' *g*.h /dev/null
argmatch.h:1:/* definitions and prototypes for argmatch.c
La seule ligne qui correspond est la première ligne
d'argmatch.h. Remarquez que la syntaxe de l'expression rationnelle
utilisée dans le motif diffère de celle avec des jokers (glob)
utilisée par l'interpréteur pour les correspondances de noms
de fichier.
awk(1), cmp(1), diff(1), find(1),
perl(1), sed(1), sort(1), xargs(1),
read(2), pcre(3), pcresyntax(3), pcrepattern(3),
terminfo(5), glob(7), regex(7)
Un manuel complet
⟨https://www.gnu.org/software/grep/manual/⟩ est disponible. Si
les programmes info et grep sont correctement installés
sur votre système, la commande
- info grep
devrait vous donner accès au manuel complet.
La traduction française de cette page de manuel a
été créée par Luc Froidefond
<luc.froidefond@free.fr>, Nicolas François
<nicolas.francois@centraliens.net>, Florentin Duneau
<fduneau@gmail.com>, David Prévot <david@tilapin.org>,
Cédric Boutillier <cedric.boutillier@gmail.com>, Jean-Philippe
MENGUAL <jpmengual@debian.org> et Jean-Pierre Giraud
<jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez
vous reporter à la GNU General Public License version 3
⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant les
conditions de copie et de distribution. Il n'y a aucune
RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page
de manuel, veuillez envoyer un message à
⟨debian-l10n-french@lists.debian.org⟩.