Aller au contenu

grep --options

grep (BSD) grep (GNU)
-A num, --after-context=num
Affiche les lignes numériques du contexte de fin après chaque correspondance. Voir aussi les options -B et-C.
-A NUM, --after-context=NUM
Affiche les lignes NUM du contexte de fin après avoir fait correspondre les lignes. Place une ligne contenant un séparateur de groupe (--) entre des groupes contigus de correspondances. Avec l'option -o ou --only-matching, cela n'a aucun effet et un avertissement est donné.
-a, --text
Traitez tous les fichiers comme du texte ASCII.
-a, --text
Traiter un fichier binaire comme s'il s'agissait de texte ; c'est équivalent à l'option --binary-files=text.
-B num, --before-context=num
Affiche le nombre de lignes de contexte principal avant chaque correspondance. Voir aussi les options -A et -C.
-B NUM, --before-context=NUM
Affiche les lignes NUM du contexte principal avant de faire correspondre les lignes. Place une ligne contenant un séparateur de groupe (--) entre des groupes contigus de correspondances. Avec l'option -o ou --only-matching, cela n'a aucun effet et un avertissement est donné.
-b, --byte-offset
Le décalage en octets d'un motif correspondant est affiché devant la ligne correspondante respective.
-b, --byte-offset
Affche le décalage d'octets basé sur 0 dans le fichier d'entrée avant chaque ligne de sortie. Si -o (--only-matching) est spécifié, imprimez le décalage de la pièce correspondante elle-même.
-C[num, --context=num]
Imprimez des lignes numériques de contexte de début et de fin entourant chaque correspondance. La valeur par défaut est 2 et équivaut à -A 2 -B 2.
Affiche les lignes NUM du contexte de sortie. Place une ligne contenant un séparateur de groupe (--) entre des groupes contigus de correspondances.
Avec l'option -o ou --only-matching, cela n'a aucun effet et un avertissement est donné.
-c, --count
Seul un nombre de lignes sélectionnées est écrit sur la sortie standard.
-c, --count
Supprimez la sortie normale ; imprimez plutôt un nombre de lignes correspondantes pour chaque fichier d'entrée. Avec l'option -v, --invert-match (voir ci-dessous), comptez les lignes non correspondantes.
--colour=[when, --color=[when]]
Marquez le texte correspondant avec l'expression stockée dans la variable d'environnement GREP_COLOR. Les valeurs possibles de when peuvent être never, always, ou auto.
--color[=WHEN], --colour[=WHEN]
Entourez les chaînes (non vides) correspondantes, les lignes de contexte, les noms de fichiers, les numéros de ligne, les décalages d'octets et les séparateurs correspondants (pour les champs et les groupes de lignes de contexte) de séquences d'échappement pour les a-cher en couleur sur le terminal. Les couleurs sont définies par la variable d'environnement GREP_COLORS. La variable d'environnement obsolète GREP_COLOR est toujours prise en charge, mais son paramètre n'a pas la priorité. WHEN est never, always, ou auto.
-D action, --devices=action
Spécifiez l'action demandée pour les périphériques, les FIFO et les sockets. L'action par défaut est 'read', ce qui signifie qu'ils sont lus comme s'il s'agissait de fichiers normaux. Si l'action est définie sur 'skip', les périphériques seront ignorés silencieusement.
-D ACTION, --devices=ACTION
Si un fichier d'entrée est un périphérique, une FIFO ou un socket, utilisez ACTION pour le traiter. Par défaut, ACTION est read, ce qui signifie que les périphériques sont lus comme s'il s'agissait de fichiers ordinaires. Si ACTION est skip, les périphériques sont ignorés en silence.
-d action, --directories=action
Spécifiez l'action demandée pour les répertoires. Il est "read" par défaut, ce qui signifie que les répertoires sont lus de la même manière que les fichiers normaux. Les autres valeurs possibles sont 'skip' pour ignorer silencieusement les répertoires, et 'récurse' pour les lire récursivement, ce qui a le même effet que l'option -R et -r.
-d ACTION, --directories=ACTION
Si un fichier d'entrée est un répertoire, utilisez ACTION pour le traiter. Par défaut, ACTION est read, c'est-à-dire lire les répertoires comme s'il s'agissait de fichiers ordinaires. Si ACTION est skip, ignorez silencieusement les répertoires. Si ACTION est récurse, lisez tous les fichiers sous chaque répertoire, récursivement, en suivant des liens symboliques uniquement s'ils se trouvent sur la ligne de commande. C'est l'équivalent de l'option -r.
-E, --extended-regexp
Interpréter le motif comme une expression régulière étendue
-E, --extended-regexp
Interpréter les MODÈLES en tant qu'expressions régulières étendues (ERE, voir ci- dessous).
-e pattern, --regexp=pattern
Spécifiez un motif utilisé lors de la recherche de l'entrée : une ligne d'entrée est sélectionnée si elle correspond à l'un des motifs spécifiés. Cette option est plus utile lorsque plusieurs options -e sont utilisées pour spécifier plusieurs motifs, ou lorsqu'un motif commence par un tiret (-').
-e PATTERNS, --regexp=PATTERNS
Utilisez des PATTERNS comme motifs. Si cette option est utilisée plusieurs fois ou est combinée avec l'option -f (--file), recherchez tous les modèles donnés. Cette option peut être utilisée pour protéger un motif commençant par "-".
--exclude
Si spécifié, il exclut les fichiers correspondant au modèle de nom de fichier donné de la recherche. Notez que les modèles --exclude ont priorité sur les modèles --include, et si aucun motif --include n'est spécifié, tous les fichiers qui ne sont pas exclus sont recherchés. Les motifs correspondent au chemin d'accès complet spécifié, pas seulement au composant nom de fichier.
--exclude=GLOB
Ignorez tout fichier en ligne de commande avec un suffixe de nom qui correspond au motif GLOB, en utilisant la correspondance de caractères génériques ; un suffixe de nom est soit le nom entier, soit une partie arrière qui commence par un caractère non-slash immédiatement après une barre oblique (/) dans le nom. Lors de la recherche récursive, sautez tout sous-fichier dont le nom de base correspond à GLOB ; le nom de base est la partie après la dernière barre oblique. Un motif peut utiliser *, ? et [...] comme caractères génériques, et pour citer littéralement un caractère générique ou antislash.
--exclude-from=FILE
Skip files whose base name matches any of the file-name globs read from FILE (using wildcard matching as described under --exclude).
Ignorer les fichiers dont le nom de base correspond à l'un des globes de nom de fichier lus à partir de FILE (en utilisant la correspondance de caractères génériques comme décrit sous --exclude).
--exclude-dir
Si -R est spécifié, il exclut les répertoires correspondants au modèle de nom de fichier donné de la recherche. Notez que les modèles --exclude- dir ont priorité sur les modèles --include-dir, et si aucun modèle --include-dir n'est spécifié, tous les répertoires qui ne sont pas exclus sont recherchés.
--exclude-dir=GLOB
Ignorez tout répertoire en ligne de commande avec un suffixe de nom qui correspond au motif GLOB. Lors de la recherche récursive, sautez tout sous-répertoire dont le nom de base correspond à GLOB. Ignorez toute barre oblique redondante dans GLOB.
-F, --fixed-strings
Interpréter le motif comme un ensemble de chaînes fixes
I-F, --fixed-strings
Interprétez les PATTERNS comme des chaînes fixes, pas comme des expressions régulières.
-f file, --file=file
Lisez un ou plusieurs modèles séparés de saut de ligne du fichier. Les lignes de motif vides correspondent à chaque ligne d'entrée. Les sauts de ligne ne sont pas considérés comme faisant partie d'un modèle. Si le fichier est vide, rien n'est trouvé.
-f FILE, --file=FILE
Obtenez des modèles à partir de FILE, un par ligne. Si cette option est utilisée plusieurs fois ou est combinée avec l'option -e (--regexp), recherchez tous les modèles donnés. Le fichier vide ne contient aucun motif et ne correspond donc à rien.
-G, --basic-regexp
Interpréter le motif comme une expression régulière de base.
-G, --basic-regexp
Interpréter les MODÈLES comme des expressions régulières de base (BRE, voir ci- dessous). C'est la valeur par défaut.
-H
Affchez toujours les en-têtes de nom de fichier avec des lignes de sortie.
-H, --with-filename
Affchez le nom du fichier pour chaque correspondance. C'est la valeur par défaut lorsqu'il y a plus d'un fichier à rechercher.
-h, --no-filename
N'affichez jamais d'en-têtes de nom de fichier (c'est-à-dire des noms de fichier) avec des lignes de sortie.
-h, --no-filename
Supprimez le préfixe des noms de fichiers sur la sortie. C'est la valeur par défaut lorsqu'il n'y a qu'un seul fichier (ou une seule entrée standard) à rechercher.
--help
Imprimez un bref message d'aide.
--help
Affchez un message d'utilisation et quittez.
-I
Ignorez les fichiers binaires. Cette option est équivalente à l'option --binary-file=without-match.
-I
Traiter un fichier binaire comme s'il ne contenait pas de données correspondantes ; c'est équivalent à l'option --binary-files=without-match.
--include
Si spécifié, seuls les fichiers correspondant au modèle de nom de fichier donné sont recherchés. Notez que les modèles --exclude ont priorité sur -- include patterns. Les motifs correspondent au chemin d'accès complet spécifié, pas seulement au composant nom de fichier.
--include=GLOB
Recherchez uniquement les fichiers dont le nom de base correspond à GLOB (en utilisant la correspondance de caractères génériques comme décrit sous -- exclude).
Si des options contradictoires --include et --exclude sont données, la dernière correspondante gagne.
Si aucune option --include ou --exclude ne correspond, un fichier est inclus à moins que la première de ces options ne soit --include.
--include-dir
Si -R est spécifié, seuls les répertoires correspondant au modèle de nom de fichier donné sont recherchés. Notez que les modèles --exclude- dir ont priorité sur les modèles --include-dir.
-J, --bz2decompress
Décompressez le fichier compressé bzip2(1) avant de rechercher le texte.
-L, --files-without-match
Seuls les noms des fichiers ne contenant pas de lignes sélectionnées sont écrits sur la sortie standard. Les chemins d'accès sont répertoriés une fois par fichier recherché. Si l'entrée standard est recherchée, la chaîne "(entrée standard)'' est écrite.
-L, --files-without-match
Supprimez la sortie normale ; imprimez plutôt le nom de chaque fichier d'entrée à partir duquel aucune sortie n'aurait normalement été imprimée. Le balayage s'arrêtera lors de la première correspondance.
-l, --files-with-matches
Seuls les noms des fichiers contenant des lignes sélectionnées sont écrits en sortie standard. grep ne recherchera un fichier que jusqu'à ce qu'une correspondance ait été trouvée, ce qui rend les recherches potentiellement moins coûteuses. Les chemins d'accès sont répertoriés une fois par fichier recherché. Si l'entrée standard est recherchée, la chaîne "(entrée standard)'' est écrite.
-l, --files-with-matches
Supprimez la sortie normale ; imprimez plutôt le nom de chaque fichier d'entrée à partir duquel la sortie aurait normalement été imprimée. Le balayage s'arrêtera lors de la première correspondance.
--mmap
Utilisez mmap(2) au lieu de read(2) pour lire l'entrée, ce qui peut entraîner de meilleures performances dans certaines circonstances, mais peut entraîner un comportement indéfini.
-m num, --max-count=num
Arrêtez de lire le fichier après num correspondances.
-m NUM, --max-count=NUM
Arrêtez de lire un fichier après NUM lignes correspondantes . Si l'entrée est une entrée standard d'un fichier régulier et que NUM lignes de correspondance sont sorties, grep s'assure que l'entrée standard est positionnée juste après la dernière ligne correspondante avant de quitter, indépendamment de la présence de lignes de contexte. Cela permet à un processus d'appel de reprendre une recherche.
Lorsque grep s'arrête après NUM lignes de correspondance, il affiche toutes les lignes de contexte.
Lorsque l'option -c ou --count est également utilisée, grep n'affiche pas un compte supérieur à NUM.
Lorsque l'option -v ou --invert-match est également utilisée, grep s'arrête après avoir affiché NUM lignes non correspondantes.
-n, --line-number
Chaque ligne de sortie est précédée de son numéro de ligne relatif dans le fichier, à partir de la ligne 1. Le compteur de numéros de ligne est réinitialisé pour chaque fichier traité. Cette option est ignorée si -c, -L, -l ou -q est spécifié.
-n, --line-number
Préfixez chaque ligne de sortie avec le numéro de ligne basé sur 1 dans son fichier d'entrée.
--null
Affiche un octet zéro après le nom du fichier.
-Z, --null
Affiche un octet zéro (le caractère ASCII NUL) au lieu du caractère qui suit normalement un nom de fichier. Par exemple, grep -lZ affiche un octet zéro après chaque nom de fichier au lieu du saut de ligne habituel. Cette option rend la sortie sans ambiguïté, même en présence de noms de fichiers contenant des caractères inhabituels comme les sauts de ligne. Cette option peut être utilisée avec des commandes comme find -print0, perl -0, sort -z et xargs -0 pour traiter les noms de fichiers arbitraires, même ceux qui contiennent des caractères de saut de ligne.
-O
Si -R est spécifié, suivez les liens symboliques uniquement s'ils ont été explicitement répertoriés sur la ligne de commande. La valeur par défaut est de ne pas suivre les liens symboliques.
-o, --only-matching
Imprime uniquement la partie correspondante des lignes.
-o, --only-matching
Imprimez uniquement les parties correspondantes (non vides) d'une ligne correspondante, chacune de ces parties sur une ligne de sortie distincte.
-p
Si -R est spécifié, aucun lien symbolique n'est suivi. C'est la valeur par défaut.
-q, --quiet, --silent
Mode silencieux : supprimez la sortie normale. grep ne recherchera un fichier que jusqu'à ce qu'une correspondance ait été trouvée, ce qui rend les recherches potentiellement moins coûteuses.
-q, --quiet, --silent
Silence ; n'écrivez rien sur la sortie standard. Quittez immédiatement avec un statut zéro si une correspondance est trouvée, même si une erreur a été détectée. Voir également l'option -s ou --no-messages.
-R, -r, --recursive
Recherchez récursivement les sous-répertoires répertoriés.
-r, --recursive
Read all files under each directory, recursively, following symbolic links only if they are on the command line. Note that if no file operand is given, grep searches the working directory. This is equivalent to the -d recurse option.
Lisez tous les fichiers sous chaque répertoire, récursivement, en suivant des liens symboliques uniquement s'ils sont sur la ligne de commande. Notez que si aucun opérande de fichier n'est donné, grep recherche dans le répertoire de travail. C'est l'équivalent de l'option récurse -d .
-R, --dereference-recursive
Lisez tous les fichiers sous chaque répertoire, récursivement. Suivez tous les liens symboliques, contrairement à -r.
-S
Si -R est spécifié, tous les liens symboliques sont suivis. La valeur par défaut est de ne pas suivre les liens symboliques.
-s, --no-messages
Mode silencieux. Les fichiers inexistants et illisibles sont ignorés (c'est-à-dire que leurs messages d'erreur sont supprimés).
-s, --no-messages
Supprimez les messages d'erreur concernant les fichiers inexistants ou illisibles.
-U, --binary
Recherchez des fichiers binaires, mais n'essayez pas de les imprimer.
-U, --binary
Traitez le(s) fichier(s) comme binaire(s). Par défaut, sous MS-DOS et MS-Windows, grep devine si un fichier est texte ou binaire comme décrit pour l'option --binary-files. Si grep décide que le fichier est un fichier texte, il supprime les caractères CR du contenu du fichier d'origine (pour que les expressions régulières avec ^ et $ fonctionnent correctement).
Spécifier -U annule cette conjecture, ce qui fait que tous les fichiers sont lus et transmis mot pour mot au mécanisme de correspondance ; si le fichier est un fichier texte avec des paires CR/LF à la fin de chaque ligne, cela entraînera l'échec de certaines expressions régulières. Cette option n'a aucun effet sur les plates- formes autres que MS-DOS et MS-Windows.
-V, --version
Afficher les informations de version et quitter.
-V, --version
Affiche le numéro de version de grep et quitte.
-v, --invert-match
Les lignes sélectionnées sont celles qui ne correspondent à aucun des motifs spécifiés.
-v, --invert-match
Inverser le sens de correspondance, pour sélectionner des lignes non correspondantes.
-w, --word-regexp
The expression is searched for as a word (as if surrounded by [[:<:]] and [[:>:]]; voir re_format(7)).
-w, --word-regexp
Sélectionnez uniquement les lignes contenant des correspondances qui forment des mots entiers. Le test est que la sous-chaîne correspondante doit être soit au début de la ligne, soit précédée d'un caractère constitutif non-mot. De même, il doit être soit à la fin de la ligne, soit suivi d'un caractère constitutif non-mot. Les caractères constitutifs du mot sont les lettres, les chiffres et le soulignement. Cette option n'a aucun effet si -x est également spécifié.
-x, --line-regexp
Seules les lignes d'entrée sélectionnées par rapport à une chaîne fixe entière ou à une expression régulière sont considérées comme des lignes correspondantes.
-x, --line-regexp
Sélectionnez uniquement les correspondances qui correspondent exactement à l'ensemble de la ligne. Pour un motif d'expression régulière, c'est comme mettre entre parenthèses le motif puis l'entourer de ^ et $.
-y
Équivalent à -i. Obsolète.
-y
Synonyme obsolète de -i.
-Z, -z, --decompress
Forcer grep à se comporter comme zgrep.
-z, --null-data
Traitez les données d'entrée et de sortie comme des séquences de lignes, chacune terminée par un octet zéro (le caractère ASCII NUL) au lieu d'un saut de ligne. Comme l'option -Z ou --null, cette option peut être utilisée avec des commandes comme sort -z pour traiter des noms de fichiers arbitraires.
--binary-files=value
Contrôle la recherche et l'impression de fichiers binaires. Les options sont binary, la valeur par défaut : rechercher des fichiers binaires mais ne par les imprimer ; without-match : ne recherchez pas de fichiers binaires ; et text : traitez tous les fichiers comme du texte.
--binary-files=TYPE
If a file's data or metadata indicate that the file contains binary data, assume that the file is of type TYPE. Non-text bytes indicate binary data; these are either output bytes that are improperly encoded for the current locale, or null input bytes when the -z option is not given.

By default, TYPE is binary, and grep suppresses output after null input binary data is discovered, and suppresses output lines that contain improperly encoded data. When some output is suppressed, grep follows any output with a one-line message saying that a binary file matches.

If TYPE is without-match, when grep discovers null input binary data it assumes that the rest of the file does not match; this is equivalent to the -I option.

If TYPE is text, grep processes a binary file as if it were text; this is equivalent to the -a option.

When type is binary, grep may treat non-text bytes as line terminators even without the -z option. This means choosing binary versus text can affect whether a pattern matches a file. For example, when type is binary the pattern q$ might match q immediately followed by a null byte, even though this is not matched when type is text. Conversely, when type is binary the pattern . (period) might not match a null byte.

Warning: The -a option might output binary garbage, which can have nasty side effects if the output is a terminal and if the terminal driver interprets some of it as commands. On the other hand, when reading files whose text encodings are unknown, it can be helpful to use -a or to set LC_ALL='C' in the environment, in order to find more matches even if the matches are unsafe for direct display.
--binary-files=value
Contrôle la recherche et l'impression de fichiers binaires. Les options sont binary, la valeur par défaut : rechercher des fichiers binaires mais ne par les imprimer ; without-match : ne recherchez pas de fichiers binaires ; et text : traitez tous les fichiers comme du texte.
Si les données ou métadonnées d'un fichier indiquent que le fichier contient des données binaires, considère que le fichier est de type TYPE. Les octets non textuels indiquent des données binaires ; il s'agit soit d'octets de sortie mal encodés pour la locale actuelle, soit d'octets d'entrée NULL lorsque l'option -z n'est pas donnée.

Par défaut, TYPE est binary, et grep supprime la sortie après la découverte de données binaires d'entrée nulles, et supprime les lignes de sortie qui contiennent des données mal encodées. Lorsqu'une sortie est supprimée, grep suit n'importe quelle sortie avec un message d'une ligne indiquant qu'un fichier binaire correspond.
Si TYPE est without-match, lorsque grep découvre des données binaires d'entrée nulles, il suppose que le reste du fichier ne correspond pas ; c'est équivalent à l'option -I.
Si TYPE est text, grep traite un fichier binaire comme s'il s'agissait de texte ; c'est l'équivalent de l'option -a.
Lorsque type est binary, grep peut traiter les octets non textuels comme des terminaisons de ligne, même sans l'option -z. Cela signifie que le choix du binaire par rapport au texte peut influer sur la correspondance d'un modèle avec un fichier. Par exemple, lorsque type est binary, le motif q$ peut correspondre à q immédiatement suivi d'un octet nul, même si cela n'est pas égalé lorsque type is text. Inversement, lorsque type est binary, le motif . (point) peut ne pas correspondre à un octet nul.
Avertissement : L'option -a peut a-cher des ordures binaires, qui peuvent avoir des effets secondaires désagréables si la sortie est un terminal et si le pilote de terminal en interprète une partie comme des commandes. D'autre part, lors de la lecture de fichiers dont les encodages de texte sont inconnus, il peut être utile d'utiliser -a ou de définir LC_ALL='C' dans l'environnement, afin de trouver plus de correspondances même si les correspondances ne sont pas sûres pour l'affichage direct.
--context[=num]
Imprimez les lignes numériques du contexte de début et de fin. La valeur par défaut est 2.
--line-buffered
Force la sortie à mettre en mémoire tampon par ligne. Par défaut, la sortie est mise en mémoire tampon en ligne lorsque la sortie standard est un terminal et le bloc est mis en mémoire tampon dans le cas contraire.
--line-buffered
Utilisez la mise en mémoire tampon de ligne sur la sortie. Cela peut entraîner une pénalité de performance.
-i, --ignore-case
Ignorez les distinctions de casse dans les modèles et les données d'entrée, de sorte que les caractères qui ne diffèrent que dans la casse correspondent les uns aux autres.
--no-ignore-case
N'ignorez pas les distinctions de cas dans les modèles et les données d'entrée. C'est la valeur par défaut. Cette option est utile pour passer aux scripts shell qui utilisent déjà -i, pour annuler ses effets car les deux options se remplacent.
--label=LABEL
Afficher l'entrée provenant réellement de l'entrée standard comme l'entrée provenant du fichier LABEL. Cela peut être utile pour les commandes qui transforment le contenu d'un fichier avant la recherche, par exemple, gzip -cd foo.gz |grep --label=foo -H 'some pattern'. Voir aussi le -H
--perl-regexp
Interpréter les MODÈLES en tant qu'expressions régulières compatibles Perl (PCRE). Cette option est expérimentale lorsqu'elle est combinée avec l'option -z (-- null-data), et grep -P peut avertir des fonctionnalités non implémentées.
-T, --initial-tab
Assurez-vous que le premier caractère du contenu réel de la ligne se trouve sur un arrêt d'onglet, de sorte que l'alignement des onglets semble normal.
C'est utile avec les options qui préfixent leur sortie au contenu réel : -H,-n et -b. Afin d'améliorer la probabilité que les lignes d'un seul fichier commencent toutes à la même colonne, cela entraîne également l'impression du numéro de ligne et du décalage d'octet (le cas échéant) dans une largeur de champ de taille minimale.
-u, --unix-byte-offsets
Report Unix-style byte offsets. This switch causes grep to report byte offsets as if the file were a Unix-style text file, i.e., with CR characters stripped off. This will produce results identical to running grep on a Unix machine. This option has no effect unless -b option is also used; it has no effect on platforms other than MS-DOS and MS-Windows.
Signaler les décalages d'octets de style Unix. Ce commutateur fait que grep signale les décalages d'octets comme si le fichier était un fichier texte de style Unix, c'est-à-dire avec des caractères CR supprimés. Cela produira des résultats identiques à ceux de l'exécution de grep sur une machine Unix. Cette option n'a aucun effet à moins que l'option -b ne soit également utilisée ; elle n'a aucun effet sur les plates-formes autres que MS-DOS et MS-Windows.

Dernière mise à jour: July 25, 2021