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 fixes (plutôt que des expressions rationnelles),
séparées par des changements 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 exactes de ligne
entière. Cette option a le même effet qu’ancrer
l’expression entre ^ et $. (-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, les positions relatives en octets et les
séparateurs (pour les champs et groupes de lignes de contexte) avec
des séquences d'échappement pour les afficher en couleur sur
le terminal. Les couleurs sont définies par la variable
d'environnement GREP_COLORS. L'ancienne variable d'environnement
GREP_COLOR est toujours gérée, mais elle a une
priorité inférieure pour décider de la configuration.
QUAND vaut never (jamais), always (toujours) ou
auto.
- -L, --files-without-match
- Ne pas afficher les résultats normaux. À la place, indiquer
le nom des fichiers pour lesquels aucun résultat n'aurait
été affiché. La recherche dans chaque fichier cesse
dès la première correspondance.
- -l, --files-with-matches
- Ne pas afficher les résultats normaux. À la place, indiquer
le nom des fichiers pour lesquels des résultats auraient
été affichés. La recherche dans chaque fichier cesse
dès la première correspondance. ( -l est
spécifiée dans POSIX)
- -m N, --max-count=N
- Arrêter de lire un fichier après avoir trouvé
N lignes sélectionnées. Si l'entrée est
l'entrée standard prise depuis un fichier normal, et si N
lignes qui correspondent sont affichées, grep s'assure avant
de s'arrêter que l'entrée standard est positionnée
juste après la dernière ligne qui concorde, même s'il
y a des lignes de contexte supplémentaires ensuite. Ceci permet au
processus d'appel de redémarrer une recherche. Quand grep
s'arrête après N lignes de concordance, il affiche
toutes les lignes de contexte. Quand l'option -c ou --count
est utilisée, grep n'affiche pas plus de N lignes.
Quand l'option -v ou --invert-match est aussi
utilisée, grep s'arrête après avoir
affiché N lignes qui ne contiennent pas le motif.
- -o, --only-matching
- N'afficher que les parties (non vides) correspondantes des lignes
sélectionnées, chaque partie étant affichée
sur une ligne séparée.
- -q, --quiet, --silent
- Ne pas afficher les résultats normaux. Sortir immédiatement
avec un code de retour égal à zéro dès qu'une
correspondance est trouvée, même si une erreur est
détectée. Voyez aussi l'option -s ou
--no-messages. ( -q est spécifiée dans
POSIX)
- -s, --no-messages
- Ne pas afficher les messages d'erreur concernant les fichiers inexistants
ou illisibles. Note de portabilité : à la
différence du grep de GNU, le grep de la 7e
édition d'UNIX n'est pas conforme au standard POSIX, car il n'a pas
d'option -q et son option -s agit comme l'option -q
du grep de GNU. La version USG de grep n'avait pas non plus
d'option -q, mais son option -s se comportait comme celle de
la version GNU de grep. Les scripts shell destinés à
être utilisés avec le grep traditionnel devraient
éviter d'utiliser les options -q et -s, et devraient
plutôt rediriger la sortie vers /dev/null. (-s est
spécifiée dans POSIX)
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 NULL) à 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 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 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, en ne suivant que les liens
symboliques indiqués sur la ligne de commande. C'est
équivalent à l'option -r.
- --exclude=MOTIF
- Sauter les fichiers dont le nom de fichier correspond à
MOTIF (en utilisant une correspondance avec joker). Un motif de
fichier peut utiliser les jokers *, ? et
[...], et \ pour la protection des caractères
littéraux joker ou contre-oblique.
- --exclude-from=FICHIER
- Sauter les fichiers dont le nom de fichier correspond à un des
motifs contenus dans le FICHIER (en utilisant les jokers comme
décrit pour --exclude).
- --exclude-dir=RÉP
- Exclure les répertoires qui correspondent au motif
RÉP des recherches récursives.
- -I
- Traiter un fichier binaire comme s'il ne contenait aucune
correspondance ; c'est équivalent à l'option
--binary-files=without-match.
- --include=MOTIF
- Ne chercher que dans les fichiers dont le nom de fichier correspond
à MOTIF (en utilisant les jokers, comme décrit pour
--exclude).
- -r, --recursive
- Lire récursivement tous les fichiers à l'intérieur de
chaque répertoire, en ne suivant les liens symboliques uniquement
s'ils sont indiqués sur la ligne de commande. C'est
l'équivalent de l'option -d recurse.
- -R, --dereference-recursive
- Lire récursivement tous les fichiers à l'intérieur de
chaque répertoire. Suivre tous les liens symboliques, contrairement
à -r.
Autres options¶
- --line-buffered
- Utiliser un tampon de ligne sur le flux de sortie. Ceci 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 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 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.
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
fonctionnent que si pcre est disponible 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.
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.
- {,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.
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
incorrecte 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 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. 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. 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-2014 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),
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
et peut être lue à l'adresse
http://www.gnu.org/software/grep/manual/. Si
info et
grep sont
correctement installés, la commande
- info grep
devrait vous donner accès au manuel complet de grep.
NOTES¶
Cette page de manuel est maintenue de façon intermittente. La
documentation complète est mise à jour plus souvent.
GNU's not Unix, but Unix is a beast; its plural form is Unixen.
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.