GREP
Section : Manuel de l'utilisateur Linux (
1)
Mise à jour de la version anglaise : 18 août 2006
Index
Menu principal
NOM
grep, egrep, fgrep - Afficher les lignes correspondant à un motif donné
SYNOPSIS
grep
[
OPTIONS]
MOTIF
[
FICHIER...]
grep
[
OPTIONS]
[
-e
MOTIF
|
-f
FICHIER]
[
FICHIER...]
DESCRIPTION
grep
recherche dans les
FICHIERs
indiqués (ou depuis l'entrée standard si aucun fichier n'est fourni, ou
si un simple trait d'union
-
est fourni en tant que nom de fichier) les lignes correspondant à un certain
MOTIF.
Par défaut,
grep
affiche les lignes qui correspondent au motif.
De plus, il existe deux variantes du programme :
egrep
et
fgrep.
egrep
est identique à
grep -E.
fgrep
est identique à
grep -F.
L'invocation directe
egrep
ou
fgrep
est déconseillée mais est fournie pour permettre à d'anciennes
applications de pouvoir continuer à les utiliser sans avoir besoin
de les modifier.
OPTIONS
Informations génériques du programme
- --help
-
Afficher un message d'utilisation résumant brièvement les options
de la ligne de commande et l'adresse de signalement de bogues,
puis quitter.
- -V, --version
-
Afficher le numéro de version de
grep
sur la sortie standard.
Ce numéro de version doit être inclus dans tout signalement de bogues
(voir plus loin).
Matcher Selection
- -E, --extended-regexp
-
Interpréter le
MOTIF
comme une expression rationnelle étendue (ERE, voir plus loin).
(-E
est spécifiée par POSIX.)
- -F, --fixed-strings
-
Interpréter le
MOTIF
comme une liste de chaînes déterminées, séparées par un caractère
« nouvelle ligne », chacune d'elle devant correspondre.
(-F
est spécifiée par POSIX.)
- -G, --basic-regexp
-
Interpréter le
MOTIF
comme une expression rationnelle simple (BRE, voir plus loin).
C'est le comportement par défaut.
- -P, --perl-regexp
-
Interpréter le
MOTIF
comme une expression rationnelle
perl.
C'est hautement expérimental et
grep -P
peut avertir de fonctionalités non implémentées.
Contrôle de correspondance
- -e MOTIF, --regexp=MOTIF
-
Utiliser le
MOTIF
comme motif. Ceci permet de protéger les motifs commençant par
un trait d'union
(-).
(-e
est spécifiée par POSIX.)
- -f FICHIER, --file=FICHIER
-
Lire les motifs dans le
FICHIER,
un motif par ligne.
Un fichier vide ne contient aucun motif, si bien qu'aucune
concordance n'est trouvée.
(-f
est spécifiée par POSIX.)
- -i, --ignore-case
-
Ignorer les distinctions de casse à la fois dans les
MOTIF
et dans les fichiers d'entrée.
(-i
est spécifiée par POSIX.)
- -v, --invert-match
-
Inverser le sens de la correspondance pour sélectionner
les lignes qui ne correspondent pas.
(-v
est spécifiée par POSIX.)
- -w, --word-regexp
-
Sélectionner seulement les lignes contenant les correspondances qui
forment des mots entiers.
Le test est que la sous-chaîne doit soit être au début de la ligne,
soit être précédée par un caractère qui ne soit pas un constituant de mot.
De la même manière, elle doit être soit à la fin de la ligne,
soit être suivie par un caractère qui ne soit pas un constituant de mot.
Les caractères constituants de mot sont les lettres, les chiffres et le
caractère souligné (« _ »).
- -x, --line-regexp
-
Sélectionner seulement les correspondances qui correspondent exactement
à une ligne complète.
(-x
est spécifiée par POSIX.)
- -y
-
Synonyme obsolète de
-i.
Contrôle général de sortie
- -c, --count
-
Supprimer la sortie normale ; à la place, afficher un décompte des lignes
correspondantes pour chaque fichier d'entrée.
Avec l'option
-v, --invert-match,
(voir plus loin), afficher le décompte des lignes ne correspondant pas.
(-c
est spécifiée par POSIX.)
- --color[=QUAND], --colour[=QUAND]
-
Entourer les chaînes (non vides) et les lignes correspondantes,
les lignes de contexte, les noms de fichiers, les numéros de lignes,
les décalages d'octets et les séparateurs (pour les champs et les groupes
de lignes de contexte) avec des séquences d'échappement pour les afficher
en couleur sur le terminal.
Les couleurs sont définies par la variable d'environnement
GREP_COLORS.
La variable d'environnement
GREP_COLOR,
dépréciée, est toujours prise en charge mais sa configuration
n'a pas priorité.
WHEN
peut être
never (jamais), always (toujours) ou auto (automatique).
- -L, --files-without-match
-
Ne pas afficher les résultats normaux.
À la place, indiquer le nom des fichiers pour lesquels aucun résultat
n'aurait été affiché.
La recherche à l'intérieur de chaque fichier s'arrête dès la première
concordance.
- -l, --files-with-matches
-
À la place, indiquer le nom
des fichiers pour lesquels des résultats auraient été affichés.
La recherche à l'intérieur de chaque fichier s'arrête dès la première
concordance.
(-l
est spécifiée par POSIX.)
- -m NOMBRE, --max-count=NOMBRE
-
Arrêter la lecture d'un fichier après
NOMBRE
lignes correspondantes.
Si l'entrée est l'entrée standard d'un fichier normal et si
NOMBRE
lignes correspondantes sont la sortie,
grep
s'assure que l'entrée standard est positionnée juste après la dernière
ligne correspondate avant de quitter, indépendemment de la présence
de lignes de contexte qui suivraient.
Cela permet au processus appelant de reprendre une recherche.
Lorsque
grep
s'arrête après
NOMBRE
lignes correspondantes, il produit en sortie toutes les lignes de contexte.
Lorsque l'option
-c
ou
--count
est également utilisée,
grep
ne produit pas en sortie un nombre supérieur à
NOMBRE.
Lorsque l'option
-v
ou
--invert-match
est également utilisée,
grep
s'arrête après avoir poduit en sortie
NOMBRE
lignes ne correspondant pas.
- -o, --only-matching
-
Afficher seulement les parties (non vides) correspondantes d'une
ligne correspondant, avec chaque partie correspondante sur une
ligne séparée.
- -q, --quiet, --silent
-
Mode silencieux ; ne rien écrire sur la sortie standard.
Sortir immédiatement avec un code de sortie nul si aucune correspondance
n'est trouvée, même si une erreur a été détectée.
Voir également l'option
-s
ou
--no-messages.
(-q
est spécifiée par POSIX.)
- -s, --no-messages
-
Supprimer les messages d'erreur relatifs aux fichiers inexistants
ou illisibles.
Note de portabilité : contrairement à la version GNU de
grep,
la version Unix 7ème Édition de
grep
ne se conformait pas à POSIX car il manquait l'option
-q
et son option
-s
se comportait comme l'option
-q
de la version GNU de
grep.
USG-style
La version
grep
de style USG n'avait pas non plus l'option
-q
mais son option
-s
se comportait comme la version GNU de
grep.
Les scripts shell conçus pour être portables ne doivent pas utiliser
les options
-q
et
-s
et doivent rediriger à la place les sorties standard et d'erreur vers
/dev/null.
(-s
est spécifiée par POSIX.)
Contrôle du préfixe des lignes en sortie
- -b, --byte-offset
-
Avant chaque ligne, afficher sa position relative (en octets) au sein du
fichier.
Si l'option
-o
(--only-matching)
est fournie, afficher la position relative de la partie correspondante.
- -H, --with-filename
-
Afficher le nom de fichier pour chaque correspondance.
C'est le comportement par défaut lorsqu'il y a plus d'un fichier à analyser.
- -h, --no-filename
-
Supprimer le préfixage des noms de fichier sur la sortie.
C'est le comportement par défaut lorsqu'il n'y a qu'un fichier
(ou seulement l'entrée standard) à analyser.
- --label=ÉTIQUETTE
-
Afficher les données provenant de l'entrée standard comme si elles
provenaient du fichier
ÉTIQUETTE.
Cela est particulièrement utile pour des outils comme
zgrep,
par exemple,
gzip -cd foo.gz | grep --label=truc quelquechose
- -n, --line-number
-
Préfixer chaque ligne de sortie avec son numéro de ligne dans le fichier
d'entrée (la numérotation commence à 1).
(-n
est spécifiée par POSIX.)
- -T, --initial-tab
-
S'assurer que le premier caractère du contenu de la ligne effective
mente sur les tabulations, ainsi, l'alignement des tabulations paraît normal.
C'est utile avec les options qui préfixent leur sortie avec le contenu réel :
-H,-n
et
-b.
Afin d'améliorer la probabilité que les lignes d'un même fichier démarrent
toutes à la même colonne, cela fait également que le numéro de ligne et le
décalage d'octet (s'ils sont présents) soient affichés avec une largeur de
champ minimum.
- -u, --unix-byte-offsets
-
Afficher la position relative en octets dans le style Unix.
Cette option fait que
grep
affiche la position relative en octets comme si le fichier était un fichier
texte de type Unix, c'est-à-dire avec les caractères CR supprimés.
Cela produira un résultat identique à l'exécution de
grep
sur une machine Unix.
Cette option n'a d'effet que si l'option
-b
est également utilisée ;
elle n'a pas d'effet sur les platesformes autres que MS-DOS et MS-Windows.
- -Z, --null
-
Produire en sortie l'octet zéro (le caractère ASCII
NUL)
plutôt que le caractère qui suit normalement un nom de fichier.
Par exemple,
grep -lZ
produit en sortie un octet zéro après chaque nom de fichier plutôt que
l'habituel caractère « nouvelle ligne ».
Cette option rend la sortie sans ambiguïté, même en présence de nom de
fichier contenant d'inhabituels caractères comme le caractère
« nouvelle ligne ».
Cette option peut être utilisée avec des commandes comme
find -print0,
perl -0,
sort -z
and
xargs -0
pour traiter arbitrairement les noms de fichier, même ceux qui contiennent
des caractères « nouvelle ligne ».
Contrôle des lignes de contexte
- -A NOMBRE, --after-context=NOMBRE
-
Afficher
NOMBRE
lignes de contexte supplémentaires après les lignes qui concordent.
Une ligne contenant un séparateur de groupe
(--)
est mise entre les groupes contigus de correspondances.
Utilisée avec l'option
-o
ou
--only-matching,
cette option n'a aucun effet et un avertissement est produit.
- -B NOMBRE, --before-context=NOMBRE
-
Afficher
NOMBRE
lignes de contexte supplémentaires avant les lignes qui concordent.
Une ligne contenant un séparateur de groupe
(--)
est mise entre les groupes contigus de correspondances.
Utilisée avec l'option
-o
ou
--only-matching,
cette option n'a aucun effet et un avertissement est produit.
- -C NOMBRE, -NOMBRE, --context=NOMBRE
-
Afficher
NOMBRE
lignes de contexte.
Une ligne contenant un séparateur de groupe
(--)
est mise entre les groupes contigus de correspondances.
Utilisée avec l'option
-o
ou
--only-matching,
cette option n'a aucun effet et un avertissement est produit.
- -a, --text
-
Traiter un fichier binaire comme s'il s'agissait de texte ; cette option
est équivalente à l'option
--binary-files=text.
- -b, --byte-offset
-
Avant chaque ligne, afficher sa position relative (en octets) au sein du
fichier.
- --binary-files=TYPE
-
Si les premiers octets d'un fichier indiquent qu'il contient des données
binaires, supposer que le fichier est de type
TYPE.
Par défaut,
TYPE
est
binary
(binaire), et soit
grep
affiche un message d'une ligne disant que le fichier binaire concorde,
soit il n'affiche rien s'il n'y a pas concordance.
Si
TYPE
est
without-match
(sans concordance),
grep
suppose qu'un fichier binaire ne concorde jamais. C'est équivalent à
l'option
-I.
Si
TYPE
est
text
(texte),
grep
traite un fichier binaire comme du texte. C'est équivalent à l'option
-a.
Attention :
grep --binary-files=text
peut afficher des données binaires indésirables, qui peuvent avoir des
conséquences fâcheuses si la sortie est envoyée vers un terminal, et si
le pilote de celui-ci interprète cet affichage comme étant des commandes.
- -D ACTION, --devices=ACTION
-
Si le fichier est un périphérique, une FIFO ou une socket, utiliser
ACTION
dessus.
Par défaut,
ACTION
est
read
(lecture), ce qui signifie que les périphériques sont lus comme des
fichiers normaux. Si
ACTION
est
skip
(escamotage), les périphériques ne sont pas pris en compte et aucun
message n'est affiché.
- -d ACTION, --directories=ACTION
-
Si le fichier est un répertoire, utiliser
ACTION.
Par défaut,
ACTION
est
read
(lecture), ce qui signifie que les répertoires sont lus comme des
fichiers normaux. Si
ACTION
est
skip
(escamotage), les répertoires ne sont pas pris en compte et aucun message
n'est affiché.
Si
ACTION
est
recurse
(récursivité),
grep
lit tous les fichiers présents dans chaque répertoire, récursivement.
C'est équivalent à l'option
-r.
- -F, --fixed-strings
-
Interpréter le
MOTIF
comme une liste de chaînes de caractères, séparées par des sauts de
ligne.
Chacune d'entre elles doit être recherchée.
- --exclude=GLOB
-
Ignorer les fichiers dont le nom correspond à
GLOB
(en utilisant les caractères de remplacement).
Un modèle de nom de fichier peut utiliser
*,
?,
et
[...]
comme caractères de remplacement et
\
pour protéger un caractère de remplacement ou le caractère contre-oblique
(Ndt : backslash)
- --exclude-from=FILE
-
Ignorer les fichiers dont le nom correspond à l'un des modèles de nom
de fichiers lus dans
FILE
(en utilisant la concordance avec caractères de remplacement
comme décrit pour
--exclude).
- --exclude-dir=RÉP
-
Exclure les répertoires correspondant au motif
RÉP
des recherches récursives.
- -I
-
Traiter un fichier binaire comme s'il ne contenait aucune concordance ;
c'est équivalent à l'option
--binary-files=without-match.
- --include=GLOB
-
Chercher dans les fichiers dont le nom correspond à
GLOB
(en utilisant les caractères de remplacement comme décrit pour l'option
--exclude).
- -R, -r, --recursive
-
Lire tous les fichiers à l'intérieur de chaque répertoire,
récursivement.
C'est équivalent à l'option
-d recurse.
Autres options
- --line-buffered
-
Utiliser la mise en mémoire-tampon de lignes sur la sortie.
Cela peut détériorer les performances.
- --mmap
-
Si possible, utiliser la fonction système
mmap(2)
pour lire les données, à la place de la fonction système
read(2)
utilisée par défaut. Dans certaines circonstances,
--mmap
permet de meilleures performances. Cependant,
--mmap
peut avoir un comportement indéfini (y compris la génération d'un
core dump)
si un fichier voit sa taille réduite pendant que
grep
le lit, ou si une erreur d'entrée-sortie survient.
- -U, --binary
-
Traiter les fichiers comme s'ils étaient des fichiers binaires.
Par défaut, sous MS-DOS et MS-Windows,
grep
détermine le type de fichier en regardant le contenu des 32 premiers
kilo-octets.
Si
grep
décide que le fichier est un fichier de texte, il enlève les retours
chariot (CR) du contenu du fichier original (afin que les expressions
avec
^
et
$
fonctionnent correctement).
L'option
-U
modifie ce comportement, tous les fichiers sont alors lus et traités tels
quels.
Si le fichier est un fichier de texte avec des paires CR-LF en
fin de ligne, certaines expressions rationnelles peuvent échouer.
Cette option n'a aucun effet sur des platesformes autres que MS-DOS et
MS-Windows.
- -z, --null-data
-
Taiter l'entrée comme un ensemble de lignes, chacune d'entre-elles
étant termnée par l'octet zéro (le caractère ASCII
NUL)
plutôt qu'un caractère « nouvelle ligne ».
Tout comme l'option
-Z
ou
--null,
cette option peut être utilisée avec des commandes comme
sort -z
pour traiter arbitrairement les noms de fichier.
EXPRESSIONS RATIONNELLES
Une expression rationnelle
(
regular expression)
est un motif qui permet de décrire un ensemble de chaînes.
Les expressions rationnelles sont construites comme des
opérations arithmétiques ; elles utilisent différents opérateurs pour
combiner des expressions plus petites.
grep
comprend deux versions différentes pour la syntaxe des expressions
rationnelles :
« simple »
(basic)
et « étendue »
(extended).
Dans la version GNU de
grep,
il n'y a pas de différence dans les fonctionnalités disponibles, quelle que
soit la syntaxe utilisée.
Dans d'autres implantations, les expressions rationnelles simples sont
moins puissantes. La description ci-dessous correspond aux expressions
étendues, les différences avec les expressions simples étant résumées
ensuite.
Les briques élémentaires sont les expressions rationnelles correspondant
à un seul caractère. La plupart des caractères, y compris les lettres et les
chiffres, sont des expressions rationnelles qui
concordent avec eux-mêmes. Tout méta-caractère ayant une signification
spéciale doit être protégé en le faisant précéder d'une contre-oblique
(backslash).
Le point
.
correspond à un seul caractère.
Classes de caractère et expressions entre crochets
Une liste de caractères, encadrée par
[
et
]
peut être mise en correspondance avec n'importe quel caractère
appartenant à la liste.
Si le premier caractère de la liste est l'accent circonflexe
^
alors la mise en correspondance se fait avec n'importe quel caractère
absent
de la liste.
Par exemple, l'expression rationnelle
[0123456789]
concorde avec n'importe quel chiffre.
Entre ces crochets, un intervalle de caractères peut être indiqué en
donnant le premier et le dernier caractère, séparés par un tiret.
Il correspond à n'importe quel caractère compris entre le premier et le
dernier caractère (ceux-ci inclus), l'ordre des caractères dépendant des
paramètres régionaux
(locale,
en anglais) en cours. Ainsi, avec la valeur par défaut (appelée
« C »),
[a-d]
est équivalent à
[abcd].
Avec beaucoup de paramètres régionaux, les caractères sont triés en suivant
l'ordre des dictionnaires, et
[a-d]
n'est alors pas équivalent à
[abcd],
mais à
[aBbCcDd],
par exemple.
Pour que ces listes aient le comportement usuel de C, vous pouvez positionner
la variable d'environnement
LC_ALL
à la valeur
C.
Enfin, il existe certaines classes de caractères prédéfinies.
Leurs noms sont assez explicites :
[:alnum:],
[:alpha:],
[:cntrl:],
[:digit:]
(chiffres),
[:graph:],
[:lower:]
(minuscules),
[:print:]
(affichables),
[:punct:]
(ponctuation),
[:space:]
(espace),
[:upper:]
(majuscules),
et
[:xdigit:]
(chiffres hexadécimaux).
Par exemple,
[[:alnum:]]
correspond à
[0-9A-Za-z],
à la différence près que le dernier dépend des paramètres régionaux C et du
codage de caractères ASCII, alors que le premier est plus
portable.
Remarquez que les crochets dans les noms de classes font partie intégrante
du nom symbolique, et qu'ils doivent donc être inclus en plus des
crochets encadrant l'expression entre crochets.
La plupart des méta-caractères perdent leur signification spéciale
au sein des listes.
Pour inclure un caractère
],
mettez-le en premier dans la liste.
De même, pour inclure un caractère
^,
placez-le n'importe où sauf au début de la liste.
Enfin, pour inclure un
-,
placez-le en dernier.
Ancrage
L'accent circonflexe
^
et le symbole dollar
$
sont des méta-caractères correspondant respectivement à une chaîne vide
au début et en fin de ligne.
Le caractère contre-oblique et les expressions spéciales
Les symboles
\<
et
\>
correspondent respectivement à une chaîne vide en début et en fin de mot.
Le symbole
\b
correspond à une chaîne vide à l'extrémité d'un mot, et
\B
correspond à une chaîne vide ne se trouvant
pas
à une extrémité de mot.
Le point
.
correspond à n'importe quel caractère.
Le symbole
\w
est un synonyme de
[[:alnum:]]
et
\W
un synonyme de
[^[:alnum]].
Répétition
Une expression rationnelle correspondant à un caractère unique peut
être suivie par l'un des opérateurs de répétition suivants :
- ?
-
L'élément précédent est facultatif et peut être rencontré au plus une fois.
- *
-
L'élément précédent peut être rencontré zéro ou plusieurs fois.
- +
-
L'élément précédent peut être rencontré une ou plusieurs fois.
- {n}
-
L'élément précédent doit être cherché exactement
n
fois.
- {n,}
-
L'élément précédent doit être cherché
n
fois ou plus.
- {,m}
-
L'élément précédent est mis en correspondance au plus
m
fois.
- {n,m}
-
L'élément précédent doit être cherché au moins
n
fois, mais au plus
m
fois.
Concaténation
Deux expressions rationnelles peuvent être juxtaposées ; l'expression
résultante correspondra à toute chaîne formée par la juxtaposition de
deux sous-chaînes correspondant respectivement aux deux expressions.
Alternance
Deux expressions rationnelles peuvent être reliées par l'opérateur infixe
| ;
l'expression résultante correspondra à toute chaîne concordant avec l'une
ou l'autre des deux expressions.
Priorité
Les répétitions ont priorité sur les juxtapositions.
Une expression peut être entourée par des parenthèses pour modifier
ces règles de priorité et former une sous-expression.
Références inverses et sous-expression.
La référence inverse
\n, où
n
est un chiffre unique, correspond à la sous-chaîne déjà mise en correspondance
avec la
n-ième
sous-expression rationnelle entre parenthèses.
Expressions rationnelles simples vs étendues
Dans les expressions rationnelles simples, les méta-caractères
?,
+,
{,
|,
(,
et
)
perdent leur signification spéciale, il faut utiliser à la place
leurs versions avec la contre-oblique
\?,
\+,
\{,
\|,
\(,
et
\).
La version traditionnelle
d'egrep
ne connaît pas le méta-caractère
{,
et certaines implantations
d'egrep
utilisent
\{
à la place, si bien que des scripts shell portables devraient éviter
{
dans les motifs de
grep -E
et utiliser
[{]
pour désigner un caractère
{.
GNU
egrep -E
essaie d'émuler l'usage traditionnel en supposant que
{
n'est pas spécial au cas où il rendrait invalide l'expression qu'il commence.
Par exemple, la commande shell
grep -E '{1'
recherche la chaîne composée des deux caractères
{1
au lieu de signaler une erreur de syntaxe dans l'expression rationnelle.
POSIX.2 permet ce comportement comme une extension à la norme,
mais les scripts portables devraient l'éviter.
ENVIRONNEMENT
Le comportement de
grep
est modifié par les variables d'environnement suivantes :
LC_ALL,
LC_truc
et
LANG,
dans cet ordre. La variable positionnée en premier détermine le choix
des paramètres régionaux. Par exemple, si
LC_ALL
n'est pas positionnée, mais
LC_MESSAGES
vaut
fr_FR,
alors la locale française est utilisé pour la catégorie
LC_MESSAGES.
Le défaut C est utilisé si aucune variable d'environnement n'est
trouvée, si le catalogue des paramètres régionaux n'est pas installé,
ou bien si
grep
a été compilé sans le support pour les langues nationales (NLS).
- GREP_OPTIONS
-
Cette variable définit des options qui seront ajoutées avant les options
de la ligne de commande.
Par exemple, si
GREP_OPTIONS
vaut
« --binary-files=without-match --directories=skip »,
grep
se comporte comme si les deux options
--binary-files=without-match
et
--directories=skip
avaient été spécifiées avant les options explicites.
Différentes options peuvent être séparées par des espaces, et une
contre-oblique supprime la signification spéciale du caractère suivant,
ce qui permet de spécifier une option contenant un espace ou une
contre-oblique.
- GREP_COLOR
-
Spécifie les marqueurs pour la mise en relief.
Cette variable spécifie la couleur utilisée pour mettre en évidence
le texte (non vide) mis en correspondance.
Cette variable est dépréciée en faveur de
GREP_COLORS,
mais est toujours prise en charge.
Les capacités
mt,
ms
et
mc
de
GREP_COLORS
ont priorité sur elle.
Elle ne peut que spécifier la coleur utilisée pour mettre en évidence
le texte non vide concordant dans chaque ligne mise en correspondance
(une ligne sélectionnée lorsque l'option
-v
est omise, ou une ligne de contexte lorsque l'option
-v
est spécifiée).
La valeur par défaut est
01;31,
qui signifie un texte d'avant-plan en rouge et en gras sur l'arrière-plan
par défaut du terminal.
- GREP_COLORS
-
Spécifie les couleurs et autres attributs utilisés pour mettre en
évidence diverses parties de la sortie.
Sa valeur est une liste, séparée par des point-virgules, de capacités
dont la valeur par défaut est
ms=01;31:mc=01;31:sl=:cx=:fn=35:ln=32:bn=32:se=36
avec les capacités booléennes
rv
et
ne
omises (c'est-à-dire, faux).
Les capacités prises en charge sont les suivantes :
-
- sl=
-
Sous-chaînes SGR pour toutes les lignes sélectionnées
(c'est-à-dire les lignes correspondantes lorsque l'option
-v
de la ligne de commande est omise,
ou les lignes ne correspondant pas lorsque l'option
-v
est présente).
Si toutefois la capacité booléenne
rv
et l'option
-v
sont toutes les deux spécifiées,
cela s'applique aux lignes de contexte correspondantes.
La valeur par défaut est rien (c'est-à-dire, la paire de couleur
par défaut du terminal).
- cx=
-
Sous-chaînes SGR pour toutes les lignes de contexte
(c'est-à-dire,
les lignes ne correspondant pas lorsque l'option
-v
de la ligne de commande est omise,
ou les lignes correspondant lorsque
-v
est spécifiée).
Si toutefois la capacité booléenne
rv
et l'option
-v
sont toutes les deux spécifiées,
cela s'applique aux lignes sélectionnées ne correspondant pas.
La valeur par défaut est rien (c'est-à-dire, la paire de couleur
par défaut du terminal).
- rv
-
Valeur booléenne qui inverse (permute) les significations
des capacités
sl=
et
cx=
lorsque l'option
-v
de la ligne de commande est spécifiée.
La valeur par défaut est « faux »
(c'est-à-dire, la capacité est omise).
- mt=01;31
-
Sous-chaînes SGR pour du texte non vide correspondant dans n'importe
quelle ligne correspondant (c'est-à-dire, une ligne sélectionnée
lorsque l'option
-v
de la ligne de commande est omise,
ou une ligne de contexte lorsque
-v
est spécifiée).
Définir cela est équivalent à définir en même temps
ms=
et
mc=
à la même valeur.
Le comportement par défaut est du texte rouge en gras en avant-plan
sur la ligne actuelle d'arrière-plan.
- ms=01;31
-
Sous-chaînes SGR pour du texte non vide dans une ligne sélectionnée.
(Ce n'est utilisé que lorsque l'option
-v
de la ligne de commande est omise.)
L'effet de la capacité
sl=
(ou
cx=
si
rv)
reste active
capability remains active when this kicks in.
Le comportement par défaut est du texte rouge en gras en avant-plan
sur la ligne actuelle d'arrière-plan.
- mc=01;31
-
Sous-chaînes SGR pour du texte non vide dans une ligne de contexte.
(Ce n'est utilisé que lorsque l'option
-v
de la ligne de commande est omise.)
L'effet de la capacité
cx=
(ou
sl=
if
rv)
capability remains active when this kicks in.
Le comportement par défaut est du texte rouge en gras en avant-plan
sur la ligne actuelle d'arrière-plan.
- fn=35
-
Sous-chaînes SGR pour les noms de fichiers préfixant toute ligne
de contenu.
Le comportement par défaut est du texte magenta en avant-plan
sur l'arrière-plan par défaut du terminal.
- ln=32
-
Sous-chaînes SGR pour les numéros de lignes préfixant toute ligne
de contenu.
Le comportement par défaut est du texte vert en avant-plan
sur l'arrière-plan par défaut du terminal.
- bn=32
-
Sous-chaînes SGR pour les décalages d'octet préfixant toute ligne
de contenu.
Le comportement par défaut est du texte vert en avant-plan
sur l'arrière-plan par défaut du terminal.
- se=36
-
Sous-chaînes SGR pour les séparateurs qui sont insérés entre les champs
des lignes sélectionnées
(:),
entre les champs de lignes de contexte,
(-),
et entre les groupes de lignes adjacentes lorsque un contexte non nul
est spécifié.
(--).
Le comportement par défaut est du texte cyan en avant-plan
sur l'arrière-plan par défaut du terminal.
- ne
-
Valeur booléenne qui empêche l'effacement en fin de ligne en utilisant
« Erase in Line (EL) » à droite
(\\\33[K)
chaque fois qu'un élément colorisé se finit.
Cela est nécessaire sur les terminaux qui ne prennent pas en charge « EL ».
C'est également utile sur les terminaux pour lesquels
la capacité booléenne terminfo
back_color_erase
(bce)
ne s'applique pas, lorsque les couleurs de mise en évidence choisies
n'affectent pas l'arrière-plan ou lorsque « EL » est trop lent ou
provoque trop de scintillement.
La valeur par défaut est « faux »
(c'est-à-dire, la capacité est omise »).
Veuillez noter que les capacités booléennes n'ont pas de partie
=....
Elles sont omises (c'est-à-dire, valent « faux ») par défaut
et deviennent « vrai » lorsqu'elles sont spécifiées.
Voir la section « Select Graphic Rendition (SGR) » de la documentation
du terminal texte utilisé pour les valeurs permises et leurs significations
en tant qu'attribut de caractères.
Ces valeurs de sous-chaînes sont des entiers en représentation décimale
et peuvent être concaténées avec des points-virgules.
grep
prend soin d'assembler le résultat dans une séquence SGR complète
(\\\33[...m).
Les valeur communes à concaténer incluent
1
pour la mise en gras,
4
pour le souslignement,
5
pour le clignotement,
7
pour inverser,
39
pour la couleur par défaut de l'avant-plan,
30
à
37
pour les couleurs d'avant-plan,
90
à
97
pour les couleurs d'avant-plan en mode 16 couleurs,
38;5;0
à
38;5;255
pour les couleurs d'avant-plan en mode 88 et 256 couleurs,
49
pour la couleur par défaut de l'arrière-plan,
40
à
47
pour les couleurs d'arrière-plan,
100
à
107
pour les couleurs d'arrière-plan en mode 16 couleurs et
48;5;0
à
48;5;255
pour les couleurs d'arrière-plan en mode 88 et 256 couleurs.
- LC_ALL, LC_COLLATE, LANG
-
Ces variables spécifient le choix des paramètres régionaux pour
la catégorie
LC_COLLATE,
qui détermine l'ordre des caractères utilisé dans des intervalles tels
que
[a-z].
- LC_ALL, LC_CTYPE, LANG
-
Ces variables spécifient le choix des paramètres régionaux pour
la catégorie
LC_CTYPE,
qui détermine le codage de caractères utilisé, par exemple pour indiquer
quels caractères sont considérés comme étant des espaces.
- LC_ALL, LC_MESSAGES, LANG
-
Ces variables spécifient le choix des paramètres régionaux pour
la catégorie
LC_MESSAGES,
qui détermine la langue utilisée par
grep
pour ses messages. Avec le défaut C, les messages sont en américain.
- POSIXLY_CORRECT
-
Si cette variable est positionnée,
grep
se comporte comme indiqué dans la norme POSIX.2. Sinon,
grep
se comporte plus comme les autres programmes GNU.
POSIX.2 requiert que les options qui suivent des noms de fichiers
soient considérées aussi comme des noms de fichiers. Par
défaut, ces options sont déplacées avant la liste des opérandes et sont
traitées comme des options.
POSIX.2 requiert aussi que les options non reconnues soient considérées
comme « illégales » ; mais comme elles n'enfreignent pas vraiment la loi,
elles sont rapportées comme étant « invalides » par défaut.
POSIXLY_CORRECT
désactive aussi l'option _N_GNU_nonoption_argv_flags_, qui
est décrite plus bas.
- _N_GNU_nonoption_argv_flags_
-
(ici,
N
est l'identifiant numérique du processus de
grep).
Si le
i-ième
caractère de la valeur de cette variable d'environnement vaut
1,
le
i-ième
opérande de
grep
n'est pas considéré comme étant une option, même s'il semble l'être.
Un shell peut placer cette variable dans l'environnement de chaque
commande lancée, pour spécifier quels opérandes sont le résultat
du remplacement de méta-caractères et ne doivent donc pas être considérés
comme des options.
Ce comportement n'est présent qu'avec la bibliothèque C de GNU,
et seulement si
POSIXLY_CORRECT
n'est pas positionnée.
CODE DE RETOUR
Normalement, le code de retour est 0 si des concordances ont été
trouvées, et 1 si aucune concordances n'a été faite.
Mais le code est 2 si une erreur est survenue, à moins que les options
-q,
--quiet
ou
--silent
ne soient utilisées et qu'une ligne ne soit trouvée.
Veuillez noter toutefois que POSIX n'exige seulement, pour des
programmes comme
grep,
cmp,
et
diff,
que le code de retour en cas d'erreur soit supérieur à 1 ;
il est donc recommandé, par égard pour la portabilité,
d'utiliser une logique qui teste cette condition générale plutôt
qu'une stricte égalité avec 2.
COPYRIGHT
Copyright ©
1998, 1999, 2000, 2002, 2005
Free Software Foundation, Inc.
This is free software;
see the source for copying conditions.
There is NO warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
BOGUES
Signaler des bogues
Envoyez les rapports de bogue (Ndt : en anglais !) à
<bug-grep@gnu.org>,
une liste de diffusion dont la page web est
<
http://lists.gnu.org/mailman/listinfo/bug-grep>.
Le suiveur de bogues Savannah de
grep
est situé à
<
http://savannah.gnu.org/bugs/?group=grep>.
Bogues connus
Dans les constructions
{m,n}
de grandes valeurs de répétition peuvent pousser
grep
à utiliser beaucoup de mémoire.
De plus, certaines autres expressions rationnelles tordues
peuvent prendre un temps très long, et mener à un
manque de mémoire.
Les références inverses sont très lentes et peuvent demander un
temps exponentiel.
VOIR AUSSI
Pages de manuel standards
awk(1),
cmp(1),
diff(1),
find(1),
gzip(1),
perl(1),
sed(1),
sort(1),
xargs(1),
zgrep(1),
mmap(2),
read(2),
pcre(3),
pcrepattern(3),
terminfo(5),
glob(7),
regex(7).
Pages de manuel du programmeur POSIX
grep(1p)
Documentation info
La documentation complète de
grep
est maintenue au format info .
Si les programmes
info
et
grep
sont correctement installés sur votre machine, la commande
-
info grep
vous donnera accès au manuel complet.
NOTES
« GNU's not Unix » (GNU n'est pas Unix) mais Unix est une bête ;
sa forme pluriel est « Unixen ».
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 15 janvier 1997, mise à jour par
Denis Barbier <barbier AT linuxfr DOT org> le 9 mars 2003
et révisée le 19 novembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 1 grep ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- Informations génériques du programme
-
- Matcher Selection
-
- Contrôle de correspondance
-
- Contrôle général de sortie
-
- Contrôle du préfixe des lignes en sortie
-
- Contrôle des lignes de contexte
-
- Autres options
-
- EXPRESSIONS RATIONNELLES
-
- Classes de caractère et expressions entre crochets
-
- Ancrage
-
- Le caractère contre-oblique et les expressions spéciales
-
- Répétition
-
- Concaténation
-
- Alternance
-
- Priorité
-
- Références inverses et sous-expression.
-
- Expressions rationnelles simples vs étendues
-
- ENVIRONNEMENT
-
- CODE DE RETOUR
-
- COPYRIGHT
-
- BOGUES
-
- Signaler des bogues
-
- Bogues connus
-
- VOIR AUSSI
-
- Pages de manuel standards
-
- Pages de manuel du programmeur POSIX
-
- Documentation info
-
- NOTES
-
- TRADUCTION
-
Dernière mise à jour : 25 avril 2008