NOM¶
grep, egrep, fgrep, rgrep - Afficher les lignes correspondant à un motif
donné
SYNOPSIS¶
grep [
OPTIONS]
MOTIF [
FICHIER...]
grep [
OPTIONS] [
-e MOTIF |
-f FICHIER]
[
FICHIER...]
DESCRIPTION¶
grep recherche dans les
FICHIERs indiqués les lignes
correspondant à un certain
MOTIF. Par défaut,
grep
affiche les lignes qui contiennent une correspondance au motif. L'entrée
standard est lue si
FICHIER est omis ou si
FICHIER vaut
« - ».
Trois variantes du programme sont disponibles :
egrep,
fgrep
et
rgrep ;
egrep est identique à
grep -E,
fgrep est identique à
grep -F et
rgrep est
identique à
grep -r. L'appel direct à
egrep ou
fgrep est déconseillé, mais est toujours possible pour
permettre à d'anciennes applications qui les utilisent de fonctionner
sans modification.
OPTIONS¶
- --help
- Afficher un bref message d'aide pour l'utilisation qui
résume les options en ligne de commande et l'adresse pour remonter
des bogues, puis quitter.
- -V, --version
- Afficher le numéro de version de grep sur la
sortie standard. Ce numéro de version devra être inclus dans
tous les rapports de bogues (voir ci-dessous).
Sélection des correspondances¶
- -E, --extended-regexp
- Interpréter le MOTIF comme une expression
rationnelle étendue (ERE, voir ci-dessous). ( -E est une
spécification POSIX.)
- -F, --fixed-strings
- Interpréter le MOTIF comme une liste de
chaînes de caractères, séparées par des sauts de
ligne. Chacune d'entre elles doit être recherchée. ( -F
est une spécification POSIX.)
- -G, --basic-regexp
- Interpréter le MOTIF comme une expression
rationnelle simple (BRE, voir ci-dessous). C'est le comportement par
défaut.
- -P, --perl-regexp
- Interpréter le MOTIF comme une expression
rationnelle Perl (PCRE, voir ci-dessous). Cette option est
expérimentale et grep -P pourrait signaler des
fonctionnalités non implémentées.
Contrôle de correspondance¶
- -e MOTIF, --regexp=MOTIF
- Utiliser le MOTIF comme motif. Ceci peut être
utilisé pour spécifier des motifs de recherche multiples ou
protéger les motifs commençant par un tiret «
- ». ( -e est une spécification POSIX.)
- -f FICHIER, --file=FICHIER
- Lire les motifs dans le FICHIER indiqué, un
motif par ligne. Un fichier vide ne contient aucun motif, si bien
qu'aucune correspondance n'est trouvée. ( -f est une
spécification POSIX.)
- -i, --ignore-case
- Ignorer la casse aussi bien dans le MOTIF que dans
les fichiers. ( -i est une spécification POSIX.)
- -v, --invert-match
- Inverser la mise en correspondance, pour sélectionner
les lignes ne correspondant pas au motif. ( -v est une
spécification POSIX.)
- -w, --word-regexp
- Ne sélectionner que les lignes contenant des
correspondances formant des mots complets. La sous-chaîne
correspondante doit donc soit se trouver au début de la ligne, soit
être précédée d'un caractère ne pouvant entrer
dans la constitution d'un mot. De même, elle doit soit se trouver
à la fin de la ligne, soit être suivie par un caractère ne
pouvant entrer dans la constitution d'un mot. Les caractères
composant les mots sont les lettres, les chiffres et le souligné
« _ ».
- -x, --line-regexp
- Ne sélectionner que les correspondances qui concernent
une ligne entière. ( -x est une spécification
POSIX.)
- -y
- Synonyme obsolète de -i.
Contrôle général de l'affichage¶
- -c, --count
- Ne pas afficher les résultats normaux. À la
place, afficher un décompte des lignes correspondant au motif pour
chaque fichier. Avec l'option -v, --invert-match (voir
ci-dessous), afficher le nombre de lignes ne contenant pas le motif. (
-c est une spécification POSIX.)
- --color[=QUAND],
--colour[= QUAND]
- Encadrer les chaînes (non vides) des correspondances,
les lignes qui correspondent, les lignes de contexte, les noms de
fichiers, les numéros de lignes et les séparateurs (pour les
champs et groupes de lignes de contexte) avec des séquences
d'échappement pour les afficher en couleur sur le terminal. Les
couleurs sont définies par la variable d'environnement
GREP_COLORS. L'ancienne variable d'environnement GREP_COLOR
est toujours gérée, mais elle a une priorité
inférieure pour décider de la configuration. QUAND vaut
never (jamais), always (toujours) ou auto.
- -L, --files-without-match
- Ne pas afficher les résultats normaux. À la
place, indiquer le nom des fichiers pour lesquels aucun résultat
n'aurait été affiché. La recherche dans chaque fichier
cesse dès la première correspondance.
- -l, --files-with-matches
- Ne pas afficher les résultats normaux. À la
place, indiquer le nom des fichiers pour lesquels des résultats
auraient été affichés. La recherche dans chaque fichier
cesse dès la première correspondance. ( -l est
spécifiée dans POSIX)
- -m N, --max-count=N
- Arrêter de lire un fichier après avoir
trouvé N lignes sélectionnées. Si l'entrée est
l'entrée standard prise depuis un fichier normal, et si N
lignes qui correspondent sont affichées, grep s'assure avant
de s'arrêter que l'entrée standard est positionnée juste
après la dernière ligne qui concorde, même s'il y a des
lignes de contexte supplémentaires ensuite. Ceci permet au processus
d'appel de redémarrer une recherche. Quand grep s'arrête
après N lignes de concordance, il affiche toutes les lignes de
contexte. Quand l'option -c ou --count est utilisée,
grep n'affiche pas plus de N lignes. Quand l'option
-v ou --invert-match est aussi utilisée, grep
s'arrête après avoir affiché N lignes qui ne
contiennent pas le motif.
- -o, --only-matching
- N'afficher que les parties (non vides) correspondantes des
lignes sélectionnées, chaque partie étant affichée sur
une ligne séparée.
- -q, --quiet, --silent
- Ne pas afficher les résultats normaux. Sortir
immédiatement avec un code de retour égal à zéro
dès qu'une correspondance est trouvée, même si une erreur
est détectée. Voyez aussi l'option -s ou
--no-messages. ( -q est spécifiée dans POSIX)
- -s, --no-messages
- Ne pas afficher les messages d'erreur concernant les
fichiers inexistants ou illisibles. Note de portabilité : à
la différence du grep de GNU, le grep de la 7e
édition d'UNIX n'est pas conforme au standard POSIX, car il n'a pas
d'option -q et son option -s agit comme l'option -q
du grep de GNU. La version USG de grep n'avait pas non plus
d'option -q, mais son option -s se comportait comme celle de
la version GNU de grep. Les scripts shell destinés à
être utilisés avec le grep traditionnel devraient
éviter d'utiliser les options -q et -s, et devraient
plutôt rediriger la sortie vers /dev/null. ( -s est
spécifiée dans POSIX)
Contrôle du préfixe à l'affichage¶
- -b, --byte-offset
- Afficher l'emplacement dans le fichier (qui commence à
l'octet 0) devant chaque ligne de sortie. Si -o
(--only-matching) est spécifiée, afficher l'emplacement
de la partie qui correspond.
- -H, --with-filename
- Afficher le nom du fichier pour chaque correspondance.
C'est le comportement par défaut quand la recherche est
effectuée sur plusieurs fichiers.
- -h, --no-filename
- Ne pas afficher le nom des fichiers au début des
lignes qui correspondent. C'est le comportement par défaut quand il
n'y a qu'un fichier (ou que l'entrée standard) dans lequel effectuer
la recherche.
- --label=ÉTIQUETTE
- Afficher les données provenant de l'entrée
standard comme si elles provenaient du fichier ÉTIQUETTE.
C'est particulièrement utile pour l'implémentation des outils
comme zgrep, par exemple : gzip -cd foo.gz |grep
--label=truc quelquechose. Consultez également l'option
-H.
- -n, --line-number
- Préfixer chaque ligne de sortie par le numéro de
la ligne dans le fichier. La numérotation commence à la ligne 1.
( -n est spécifiée dans POSIX)
- -T, --initial-tab
- S'assurer que le premier caractère correspondant au
contenu est placé à un emplacement d'arrêt d'une
tabulation, pour que l'alignement des tabulations paraisse normal. Ceci
est utile avec les options qui utilisent un préfixe avant le
contenu : -H, -n et -b. Pour augmenter la
probabilité que toutes les lignes d'un fichier commencent à la
même colonne, cela force aussi le numéro de ligne et
l'emplacement (s'ils sont présents) à être affichés
dans un champ de taille minimale.
- -u, --unix-byte-offsets
- Afficher la position relative en octets dans le style UNIX.
Avec cette option, grep affiche la position relative en octets
comme si le fichier était un fichier de texte de type UNIX,
c'est-à-dire avec les caractères CR supprimés. Ceci permet
d'avoir un résultat identique à celui retourné par
grep sur une machine UNIX. Cette option n'a d'effet que si elle est
utilisée conjointement avec l'option -b, et sur une machine
MS-DOS ou MS-Windows.
- -Z, --null
- Afficher un octet nul (le caractère ASCII NUL)
à la place du caractère qui suit d'ordinaire le nom du fichier.
Par exemple, grep -lZ affiche un octet nul après chaque nom de
fichier, à la place du saut de ligne. Cette option permet de rendre
la sortie non ambiguë, même quand les noms de fichiers
contiennent des caractères inhabituels, comme des sauts de ligne.
Cette option peut être utilisée avec des commandes telles que
find -print0, perl -0, sort -z, et xargs
-0 pour traiter des fichiers avec des noms quelconques, même ceux
contenant des sauts de ligne.
Contrôle des lignes de contexte¶
- -A N, --after-context=N
- Afficher les N lignes qui suivent celle contenant le
motif. Une ligne contenant -- est insérée entre les
groupes contigus de correspondances. Avec l'option -o ou
--only-matching, ça n'a aucun effet et un avertissement est
affiché.
- -B N, --before-context=N
- Afficher les N lignes qui précèdent celle
qui contient le motif. Une ligne contenant -- est insérée
entre les groupes contigus de correspondances. Avec l'option -o ou
--only-matching, ça n'a aucun effet et un avertissement est
affiché.
- -C N, -N,
--context=N
- Afficher N lignes de contexte. Une ligne contenant
-- est insérée entre les groupes contigus de
correspondances. Avec l'option -o ou --only-matching,
ça n'a aucun effet et un avertissement est affiché.
Sélection de fichiers ou répertoires¶
- -a, --text
- Traiter un fichier binaire comme s'il s'agissait de
texte ; c'est l'équivalent de l'option
--binary-files=text.
- --binary-files=TYPE
- Si les premiers octets d'un fichier indiquent qu'il
contient des données binaires, considérer que le fichier est de
type TYPE. Par défaut, TYPE est binary, et
grep affiche un message uniligne disant que le fichier binaire
contient le motif ou n'affiche rien s'il n'y a pas correspondance. Si
TYPE est without-match, grep considère qu'un
fichier binaire ne concorde jamais. C'est équivalent à l'option
-I. Si TYPE est text, grep traite un fichier
binaire comme du texte. C'est équivalent à l'option -a.
Attention : grep --binary-files=text peut afficher des
données binaires indésirables, qui peuvent avoir des
conséquences fâcheuses si la sortie est envoyée vers un
terminal et si le pilote de celui-ci l'interprète comme s'il
s'agissait de commandes.
- -D ACTION,
--devices=ACTION
- Si le fichier est un périphérique, une FIFO ou
une socket, utiliser ACTION dessus. Par défaut, ACTION
est read (lecture), ce qui signifie que les périphériques
sont lus comme des fichiers normaux. Si ACTION est skip, les
périphériques sont ignorés en silence.
- -d ACTION,
--directories=ACTION
- Si le fichier est un répertoire, utiliser
ACTION. Par défaut, ACTION est read, ce qui
signifie que les répertoires sont lus comme des fichiers normaux. Si
ACTION est skip, les répertoires sont ignorés et
aucun message n'est affiché. Si ACTION est recurse,
grep lit tous les fichiers présents dans chaque
répertoire, récursivement. C'est équivalent à l'option
-r.
- --exclude=MOTIF
- Sauter les fichiers dont le nom de fichier correspond
à MOTIF (en utilisant une correspondance avec joker). Un motif
de fichier peut utiliser les jokers *, ?, and
[...] et \ pour l'échappement des
caractères littéraux joker ou contre-oblique.
- --exclude-from=FICHIER
- Sauter les fichiers dont le nom de fichier correspond
à un des motifs contenus dans le FICHIER (en utilisant les
jokers comme décrit pour --exclude).
- --exclude-dir=RÉP
- Exclure les répertoires qui correspondent au motif
RÉP des recherches récursives.
- -I
- Traiter un fichier binaire comme s'il ne contenait aucune
correspondance ; c'est équivalent à l'option
--binary-files=without-match.
- --include=MOTIF
- Ne chercher que dans les fichiers dont le nom de fichier
correspond à MOTIF (en utilisant les jokers, comme décrit
pour --exclude).
- -R, -r, --recursive
- Lire récursivement tous les fichiers à
l'intérieur de chaque répertoire. C'est l'équivalent de
l'option -d recurse.
Autres options¶
- --line-buffered
- Utiliser un tampon de ligne sur le flux de sortie. Ceci
peut réduire les performances.
- --mmap
- Si possible, utiliser la fonction système
mmap(2) pour lire les données en entrée plutôt que
la fonction système read(2) utilisée par défaut.
Dans certaines circonstances, --mmap permet de meilleures
performances. Cependant, --mmap peut avoir un comportement
aléatoire (y compris la génération d'un core dump)
si un fichier voit sa taille réduite pendant que grep le lit,
ou si une erreur d'entrée-sortie survient.
- -U, --binary
- Traiter les fichiers comme s'ils étaient des fichiers
binaires. Par défaut, sous MS-DOS et MS-Windows, grep
détermine le type de fichier en regardant le contenu des 32 premiers
kilo-octets. Si grep décide que le fichier est un fichier de
texte, il enlève les retours chariot (CR) du contenu du fichier
original (afin que les expressions avec ^ et $ fonctionnent
correctement). L'option -U modifie ce comportement, tous les
fichiers sont alors lus et traités tels quels. Si le fichier est un
fichier de texte avec des paires CR-LF en fin de ligne, certaines
expressions rationnelles peuvent échouer. Cette option n'a aucun
effet sur des plates-formes autres que MS-DOS et MS-Windows.
- -z, --null-data
- Considérer que l'entrée est un ensemble de
lignes, chacune terminée par un octet nul (le caractère ASCII
NUL) au lieu d'un saut de ligne. Comme l'option -Z ou
--null, cette option peut être combinée avec des
commandes comme sort -z pour traiter des fichiers ayant un nom
quelconque.
EXPRESSIONS RATIONNELLES¶
Une expression rationnelle est un motif qui permet de décrire un ensemble
de chaînes. Les expressions rationnelles sont construites comme des
opérations arithmétiques ; elles utilisent différents
opérateurs pour combiner des expressions plus petites.
Grep gère trois styles de syntaxe pour les expressions
rationnelles : « simple » (
basic, BRE),
« étendue » (
extended, ERE) et
«
Perl » (PCRE). Dans la version GNU de
grep, il n'y a pas de différence dans les fonctionnalités
disponibles pour les styles
basic et
extended. Dans d'autres
implémentations, les expressions rationnelles simples sont moins
complètes. La description ci-dessous correspond aux expressions
étendues, les différences avec les expressions simples étant
résumées ensuite. Les expressions rationnelles Perl offrent des
fonctionnalités supplémentaires et sont documentées dans
pcresyntax(3) et
pcrepattern(3), mais ne sont pas disponibles
sur tous les systèmes.
Les briques élémentaires sont les expressions rationnelles
correspondant à un seul caractère. La plupart des caractères, y
compris les lettres et les chiffres, constituent des expressions rationnelles
et correspondent avec eux-mêmes. Tout métacaractère ayant une
signification particulière doit être protégé en le faisant
précéder d'une contre-oblique (
backslash).
Le point
. correspond à n'importe quel caractère.
Classes de caractères et expressions entre crochets¶
Une liste de caractères, encadrée par
[ et
] peut
être mise en correspondance avec n'importe quel caractère
appartenant à la liste. Si le premier caractère de la liste est
l'accent circonflexe «
^ », alors la mise en
correspondance se fait avec n'importe quel caractère
absent de la
liste. Par exemple, l'expression rationnelle
[0123456789] concorde avec
n'importe quel chiffre.
Entre ces crochets, un
intervalle de caractères peut être
indiqué en donnant le premier et le dernier caractère,
séparés par un tiret. Il correspond à n'importe quel
caractère compris entre le premier et le dernier caractère (ceux-ci
inclus), l'ordre des caractères dépendant des paramètres
régionaux (
locale, en anglais) actuels. Ainsi, avec la valeur par
défaut (« C »),
[a-d] est équivalent
à
[abcd]. Avec beaucoup de paramètres régionaux, les
caractères sont triés en suivant l'ordre des dictionnaires, et
[a-d] n'est alors en général pas équivalent à
[abcd], mais peut l'être à
[aBbCcDd], par exemple.
Pour que ces listes aient le comportement habituel de
« C », vous pouvez positionner la variable d'environnement
LC_ALL à la valeur
C.
Enfin, il existe certaines classes de caractères prédéfinies.
Leurs noms sont assez explicites :
[:alnum:],
[:alpha:],
[:cntrl:],
[:digit:] (chiffres),
[:graph:],
[:lower:] (minuscules),
[:print:] (affichables),
[:punct:] (ponctuation),
[:space:] (espace),
[:upper:]
(majuscules), et
[:xdigit:] (chiffres hexadécimaux). Par exemple,
[[:alnum:]] correspond aux chiffres et lettres pour les paramètres
régionaux actuels. Dans les paramètres régionaux C et avec le
codage de caractères ASCII, c'est équivalent à
[0-9A-Za-z]. Remarquez que les crochets dans les noms de classes font
partie intégrante du nom symbolique, et qu'ils doivent donc être
inclus en plus des crochets encadrant ces expressions entre crochets. La
plupart des métacaractères perdent leur signification
particulière à l'intérieur d'une expression entre crochets.
Pour inclure un caractère
], mettez-le en premier dans la liste.
De même, pour inclure un caractère
^, placez-le n'importe
où sauf au début de la liste. Enfin, pour inclure un
-,
placez-le en dernier.
Ancrage¶
L'accent circonflexe «
^ » et le symbole dollar
«
$ » sont des métacaractères
correspondant respectivement à une chaîne vide au début et en
fin de ligne.
Caractère contre-oblique et les expressions
spéciales¶
Les symboles
\< et
\> correspondent respectivement à
une chaîne vide en début et en fin de mot. Le symbole
\b
correspond à une chaîne vide à l'extrémité d'un mot,
et
\B correspond à une chaîne vide ne se trouvant
pas
à une extrémité de mot. Le symbole
\w est un synonyme
pour
[_[:alnum:]] et
\W est un synonyme pour
[^_[:alnum:]].
Répétitions¶
Dans une expression rationnelle, un caractère peut être suivi par l'un
des opérateurs de répétition suivants :
- ?
- L'élément précédent est facultatif et
peut être rencontré au plus une fois.
- *
- L'élément précédent peut être
rencontré zéro ou plusieurs fois.
- +
- L'élément précédent peut être
rencontré une ou plusieurs fois.
- {n}
- L'élément précédent doit correspondre
exactement n fois.
- {n,}
- L'élément précédent doit correspondre
n fois ou plus.
- {n,m}
- L'élément précédent doit correspondre
au moins n fois, mais au plus m fois.
Concaténations¶
Deux expressions rationnelles peuvent être juxtaposées ;
l'expression résultante correspondra à toute chaîne formée
par la juxtaposition de deux sous-chaînes correspondant respectivement
aux deux expressions.
Alternatives¶
Deux expressions rationnelles peuvent être reliées par
l'opérateur infixe
| ; l'expression résultante
correspondra à toute chaîne qui comporte l'une ou l'autre des deux
expressions.
Priorités¶
Les répétitions ont priorité sur les concaténations, qui
à leur tour ont priorité sur les alternatives. Une sous-expression
peut être entourée par des parenthèses pour modifier ces
règles de priorité et former une expression.
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.
Expressions rationnelles basiques et étendues¶
Dans les expressions rationnelles simples, les métacaractères
?,
+,
{,
|,
(, et
) perdent leur
signification spéciale, il faut utiliser à la place leur version
avec la contre-oblique
\?,
\+,
\{,
\|,
\(,
et
\).
La version traditionnelle d'
egrep ne connaît pas le
métacaractère
{, et certaines implémentations d'
egrep utilisent
\{ à la place, si bien que des scripts
shell portables devraient éviter
{ dans les motifs d'
egrep
et utiliser
[{] pour désigner un caractère
{.
GNU
grep -E essaie d'émuler l'usage traditionnel en supposant
que
{ n'est pas spécial au cas où il rendrait invalide
l'expression qu'il commence. Par exemple, la commande shell
grep -E '{1' recherche la chaîne composée des deux
caractères
{1 au lieu de signaler une erreur de syntaxe. POSIX.2
permet ce comportement comme une extension à la norme, mais les scripts
portables devraient l'éviter.
VARIABLES D'ENVIRONNEMENT¶
Le comportement de
grep est modifié par les variables
d'environnement suivantes :
Les paramètres régionaux pour la catégorie
LC_truc
est définie par les trois variables d'environnement
LC_ALL,
LC_ truc,
LANG, dans cet ordre. La variable
positionnée en premier détermine le choix des paramètres
régionaux. Par exemple, si
LC_ALL n'est pas positionnée, mais
LC_MESSAGES vaut
fr_FR, alors le français est utilisé
pour l'affichage des messages. Par défaut « C » est
utilisée si aucune variable d'environnement n'est trouvée, si le
catalogue des paramètres régionaux n'est pas installé ou bien
si
grep a été compilé sans le support pour les langues
nationales (NLS).
- GREP_OPTIONS
- Cette variable définit des options qui seront
ajoutées avant n'importe quelle option explicite de la ligne de
commande. Par exemple, si GREP_OPTIONS vaut
« --binary-files=without-match
--directories=skip », grep se comporte comme si
les deux options --binary-files=without-match et
--directories=skip avaient été spécifiées avant
les options explicites. Différentes options peuvent être
séparées par des espaces, et une contre-oblique supprime la
signification spéciale du caractère suivant, ce qui permet de
spécifier une option contenant une espace ou une contre-oblique.
- GREP_COLOR
- Cette variable spécifie la couleur utilisée pour
mettre en évidence le texte qui correspond (et n'est pas vide). Elle
est dépréciée en faveur de GREP_COLORS, mais est
encore prise en charge. Les capacités mt, ms et
mc de GREP_COLORS sont prioritaires sur celle-ci. Cette
variable ne peut que spécifier la couleur pour mettre en
évidence le texte non vide concordant dans une ligne qui correspond
(une ligne sélectionnée quand l'option de la ligne de commande
-v n'est pas utilisée, ou une ligne de contexte quand
-v est spécifiée). La valeur par défaut est
01;31, ce qui correspond à un texte rouge en gras sur le fond
par défaut du terminal.
- GREP_COLORS
- Indiquer les couleurs et autres attributs utilisés
pour mettre en évidence différentes parties de la sortie. Sa
valeur est une liste de capacités séparées par des
deux-points, qui vaut par défaut
ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36 sans les
capacités booléennes rv et ne (qui prennent alors
la valeur « false », faux). Les capacités prises
en charge sont les suivantes :
- sl=
- Sous-chaîne SGR (« Select Graphic
Rendition ») pour les lignes entières
sélectionnées (c'est-à-dire les lignes qui correspondent
quand l'option en ligne de commande -v n'est pas utilisée, ou
les lignes qui ne correspondent pas quand -v est
spécifiée). Si cependant la capacité booléenne
rv et l'option en ligne de commande -v sont toutes deux
indiquées, ça s'applique à la place aux lignes de contexte
qui correspondent. La valeur par défaut est vide (c'est-à-dire
la paire de couleurs par défaut du terminal).
- cx=
- Sous-chaîne SGR pour les lignes de contexte
entières (c'est-à-dire les lignes qui ne correspondent pas quand
l'option en ligne de commande -v n'est pas utilisée, ou les
lignes qui correspondent quand -v est indiquée). Si cependant
la capacité booléenne rv et l'option en ligne de commande
-v sont toutes deux indiquées, ça s'applique à la
place aux lignes qui ne correspondent pas. La valeur par défaut est
vide (c'est-à-dire la paire de couleurs par défaut du
terminal).
- rv
- Valeur booléenne qui inverse la signification des
capacités sl= et cx= quand la ligne de commande
-v est indiquée. La valeur par défaut est le booléen
faux (c'est-à-dire la capacité est omise).
- mt=01;31
- Sous-chaîne SGR pour le texte non vide qui correspond
dans les lignes qui correspondent (c'est-à-dire une ligne
sélectionnée quand l'option en ligne de commande -v n'est
pas utilisée, ou une ligne de contexte quand -v est
spécifiée). L'utiliser est équivalent à utiliser
à la fois ms= et mc= avec la même valeur. La
valeur par défaut correspond à du texte rouge en gras sur le
fond de la ligne actuelle.
- ms=01;31
- Sous-chaîne SGR pour le texte non vide qui correspond
dans une ligne sélectionnée (ce n'est utilisé que quand
l'option en ligne de commande -v n'est pas utilisée). L'effet
de la capacité sl= (ou cx= si rv est
activée) reste actif quand c'est utilisé. La valeur par
défaut correspond à du texte rouge en gras sur le fond de la
ligne actuelle.
- mc=01;31
- Sous-chaîne SGR pour le texte non vide qui correspond
dans les lignes de contexte (ce n'est utilisé que quand l'option en
ligne de commande -v n'est pas utilisée). L'effet de la
capacité cx= (ou sl= si rv est activée)
reste actif quand c'est utilisé. La valeur par défaut correspond
à du texte rouge en gras sur le fond de la ligne actuelle.
- fn=35
- Sous-chaîne SGR pour les noms de fichier qui
préfixent les lignes de contenu. La valeur par défaut correspond
à du texte de couleur magenta sur le fond par défaut du
terminal.
- ln=32
- Sous-chaîne SGR pour les numéros de ligne qui
préfixent les lignes de contenu. La valeur par défaut correspond
à du texte de couleur vert sur le fond par défaut du
terminal.
- bn=32
- Sous-chaîne SGR pour les emplacements qui
préfixent les lignes de contenu. La valeur par défaut correspond
à du texte de couleur vert sur le fond par défaut du
terminal.
- se=36
- Sous-chaîne SGR pour les séparateurs qui sont
insérés entre les champs des lignes sélectionnées (
:), entre les champs des lignes de contexte (-) et entre les
groupes de lignes adjacentes quand un contexte non nul est
spécifié ( --). La valeur par défaut correspond
à du texte de couleur cyan sur le fond par défaut du
terminal.
- ne
- Valeur booléenne qui évite l'effacement de la fin
de la ligne en utilisant une séquence EL (« Erase in
Line », ou en français « effacement en
ligne ») vers la droite ( \33[K) à chaque fois qu'un
élément coloré se termine. C'est nécessaire pour les
terminaux sur lesquels EL n'est pas pris en charge. Sinon, c'est aussi
utile pour les terminaux sur lesquels la capacité booléenne
terminfo « back_color_erase » (bce) ne
s'applique pas, quand les couleurs de mise en évidence ne touchent
pas à la couleur de fond, quand EL est trop lent ou cause trop de
scintillements. La valeur par défaut est le booléen faux
(c'est-à-dire que la capacité n'est pas activée).
Notez que les capacités booléenne n'ont pas de partie «
=... ». Elles sont omises par défaut (ce qui correspond
à une valeur booléenne fausse) et deviennent vrai si elles sont
précisées.
Voir la section Select Graphic Rendition (SGR) dans la documentation du terminal
texte utilisé pour avoir la liste des valeurs autorisées et leur
signification comme attributs de caractère. Ces valeurs de
sous-chaînes sont des entiers sous forme décimale et peuvent
être concaténées à l'aide de points-virgules.
grep
se charge d'assembler le résultat en une séquence SGR complète
(
\33[...
m). Les valeurs courantes à concaténer sont
entre autres
1 (gras),
4 (souligné),
5 (clignotant),
7 (inversé),
39 (couleur de trait par défaut),
30 à
37 (couleurs de trait),
90 à
97
(couleurs de trait en mode 16 couleurs),
38;5;0 à
38;5;255 (couleurs de trait en mode 88 et 256 couleurs),
49
(couleur de fond par défaut),
40 à
47 (couleurs de
fond),
100 à
107 (couleurs de fond en mode
16 couleurs) et
48;5;0 à
48;5;255 (couleurs de fond en
mode 88 et 256 couleurs).
- LC_ALL, LC_COLLATE, LANG
- Ces variables indiquent le choix des paramètres
régionaux pour la catégorie LC_COLLATE, qui
détermine l'ordre des caractères utilisé pour
l'interprétation des intervalles tels que [a-z].
- LC_ALL, LC_CTYPE, LANG
- Ces variables indiquent le choix des paramètres
régionaux pour la catégorie LC_CTYPE qui détermine
le codage de caractères utilisé, par exemple pour indiquer quels
caractères sont considérés comme étant des
espaces.
- LC_ALL, LC_MESSAGES, LANG
- Ces variables indiquent le choix des paramètres
régionaux pour la catégorie LC_MESSAGES, qui
détermine la langue utilisée par grep pour ses messages.
Par défaut, avec « C », les messages sont en
anglais américain.
- POSIXLY_CORRECT
- Si cette variable est positionnée, grep se
comporte comme indiqué dans la norme POSIX.2. Sinon, grep se
comporte plus comme les autres programmes GNU. POSIX.2 requiert que les
options qui suivent des noms de fichiers soient considérées
aussi comme des noms de fichiers. Par défaut, ces options sont
déplacées avant la liste des opérandes et sont
traitées comme des options. POSIX.2 requiert aussi que les options
non reconnues soient considérées comme
« illégales » ; mais comme elles
n'enfreignent pas vraiment les règles, elles sont rapportées
comme étant « invalides » par défaut.
POSIXLY_CORRECT désactive aussi l'option
_N_GNU_nonoption_argv_flags_, qui est décrite
plus bas.
- _N_GNU_nonoption_argv_flags_
- (Ici, N est l'identifiant numérique du
processus de grep). Si le i-ième caractère de la
valeur de cette variable d'environnement vaut 1, le
i-ième opérande de grep n'est pas
considéré comme étant une option, même s'il semble
l'être. Un shell peut placer cette variable dans l'environnement de
chaque commande lancée, pour spécifier quels opérandes sont
le résultat du remplacement de métacaractères et ne doivent
donc pas être considérés comme des options. Ce comportement
n'est présent qu'avec la bibliothèque C de GNU, et seulement si
POSIXLY_CORRECT n'est pas positionnée.
CODE DE SORTIE¶
Le code de sortie vaut 0 si des lignes sont trouvées et 1 si aucune n'est
trouvée. Si une erreur survient, le code de sortie vaut 2. (Note :
pour une gestion des erreurs POSIX, vous devriez tester si le code de sortie
vaut 2 ou une valeur supérieure.
COPYRIGHT¶
Copyright 1998-2000, 2002, 2005-2012 Free Software Foundation, Inc.
Ce logiciel est libre ; voir les sources pour les conditions de
reproduction. AUCUNE garantie n'est donnée, pas même la garantie
implicite de COMMERCIALISATION ni d'ADÉQUATION À UN BESOIN
PARTICULIER.
BOGUES¶
Remonter 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 logiciel de
suivi des bogues sur Savannah de
grep est situé à l'adresse
<
http://savannah.gnu.org/bugs/?group=grep>.
Bogues connus¶
Dans les constructions
{n,m} de grandes
valeurs de répétition peuvent pousser
grep à utiliser
beaucoup de mémoire. D'autres expressions rationnelles tordues peuvent
prendre un temps très long et mener à une insuffisance de
mémoire.
Les références arrières sont très lentes et peuvent demander
un temps très important (exponentiel).
VOIR AUSSI¶
Pages de manuel¶
awk(1),
cmp(1),
diff(1),
find(1),
gzip(1),
perl(1),
sed(1),
sort(1),
xargs(1),
zgrep(1),
mmap(2),
read(2),
pcre(3),
pcresyntax(3),
pcrepattern(3),
terminfo(5),
glob(7),
regex(7).
POSIX Page de manuel du programmeur¶
grep(1p).
Documentation TeXinfo¶
La documentation complète de
grep est disponible au format TeXinfo.
Si
info et
grep sont correctement installés, la commande
- info grep
devrait vous donner accès au manuel complet de grep.
NOTES¶
GNU's not Unix, but Unix is a beast; its plural form is Unixen.
TRADUCTION¶
Cette page de manuel a été traduite par Christophe Blaess en 1997 et
mise à jour par Denis Barbier jusqu'en 2005. La version présente
dans Debian est dorénavant maintenue par Luc Froidefond <luc DOT
froidefond AT free DOT fr> et les membres de la liste
<debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler
toute erreur de traduction par un rapport de bogue sur le paquet
manpages-fr-extra.