Section courante

A propos

Section administrative du site

grep

Impression d'expression régulière global
Linux Externe

Syntaxe

grep [ –[[AB]]num ][–[CEFGVBchilnsvwx]][–e ] pattern j –ffile ][files... ]

Paramètres

Nom Description
-num Ce paramètre permet d'indiquer le nombre de lignes à rajouter avant et après le résultats.
-A num Ce paramètre permet d'indiquer le nombre de lignes à rajouter après le résultats.
-B num Ce paramètre permet d'indiquer le nombre de lignes à rajouter avant le résultats.
-C num Ce paramètre permet d'afficher le nombre de ligne spécifié à la sortie du contexte.
-b Ce paramètre permet d'afficher au début de chaque ligne le nombre d'octets avant le résultat trouvé.
-c Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels, il faut plutôt afficher le nombre de lignes correspondant aux entrées de fichiers.
-e pattern_list Ce paramètre permet d'indiquer l'expression régulière à utiliser.
-f file Ce paramètre permet d'indiquer le masque des fichiers à analyser.
-h Ce paramètre permet d'indiquer qu'il ne faut pas afficher les noms de fichiers lorsqu'il y a plusieurs fichiers de sélectionné.
-i Ce paramètre permet d'indiquer qu'il ne faut pas effectuer de différence entre les minuscules ou les majuscules lors de la comparaison.
-L Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels, il faut plutôt afficher les noms de fichiers ayant aucun résultat.
-l Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels, il faut plutôt afficher les noms de fichiers ayant des résultats.
-n Ce paramètre permet d'indiquer qu'il faut ajouter à chacune des lignes de sortie un préfixe avec un numéro dans le fichier situé en entrée.
-q Ce paramètre permet d'indiquer qu'il ne faut pas afficher les résultats habituels. On passe en mode silencieux.
-s Ce paramètre permet d'indiquer qu'il ne faut pas afficher les messages d'erreur à propos des fichiers inexistants ou impossible à lire.
-v Ce paramètre permet d'indiquer qu'il faut effectuer une négation des correspondances demandé. Le test est inversé.
-V Ce paramètre permet d'afficher les informations de version de cette commande et quitte immédiatement après.
-w Ce paramètre permet d'indiquer qu'il faut tenir compte que des correspondance d'expression régulière avec un mot complet.
-x Ce paramètre permet d'indiquer qu'il faut tenir compte que des correspondance d'expression régulière contenu sur une seule ligne.
files Ce paramètre permet d'indiquer dans quels fichiers effectuer les recherches.

Description

Cette commande permet d'effectuer la recherche d'une expressions de style ed dans des fichiers.

Remarques

Exemples

L'exemple suivant permet d'effectuer une recherche du texte «montexte» dans le dossier «home» récursivement :

grep -r 'montexte' /home/*

L'exemple suivant permet de rechercher dans récursivement dans tous les dossiers le mot «gladir» mais uniquement dans les fichiers avec des extensions «.yml» :

grep -r --include "*.yml" 'gladir' .

L'exemple suivant permet d'afficher les 5 lignes précédentes et les 5 lignes suivantes d'où a été trouvé le mot «test» :

grep -A 5 -B 5 "test" monfichier.txt

L'exemple suivant permet de sortir uniquement les lignes contenu des «PHP Fatal error:» contenu dans le fichier «phperror_log» :

grep "PHP Fatal error:" phperror_log

on obtiendra un résultat ressemblant parfois à ceci (très variable d'une machine à l'autre) :

[16-Aug-2013 13:30:28] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9272 bytes) in /data/www/monprojet/classes/traitementImage.class.php on line 290
[16-Aug-2013 13:35:29] PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 9272 bytes) in /data/www/monprojet/classes/traitementImage.class.php on line 1890

L'exemple suivant permet d'obtenir le nombre de fois que contient l'expression «OFFRE DEMPLOI» dans le fichier «data.xml» (même s'il en contient plusieurs fois sur la même ligne) :

grep "OFFRE DEMPLOI" data.xml -roh | wc -w

on obtiendra un résultat semblable a ceci :

24

L'exemple suivant permet de retourner uniquement le nombre au début de la phrase spécifié :

echo "123-ceci est un phrase" | grep -oP "^\d*"

on obtiendra le résultat suivant :

123

Prenons pour acquis le fichier suivant «test.htm» :

  1. <body>
  2. <title>Mon titre</title>
  3. #BEGIN#.....#END#
  4.  
  5. #MULTIBEGIN#
  6. ...
  7. ...
  8. #MULTIEND#
  9. </body>

L'exemple suivant permet de retourner le contenu entre les balises «title» inclusivement :

grep -oP "<title>(.*)</title>" test.htm

on obtiendra le résultat suivant :

<title>Mon titre</title>

L'exemple suivant permet de rechercher le contenu entre les balises «#BEGIN#» et «#END#» en prenant pour acquis qu'ils sont sur la même ligne :

grep -oP "#BEGIN#(.*)#END#" test.htm

on obtiendra le résultat suivant :

#BEGIN#.....#END#

L'exemple suivant permet de rechercher le contenu entre les balises «#BEGIN#» et «#END#» en prenant pour acquis qu'ils sont sur plusieurs lignes :

grep -Pzo "#MULTIBEGIN#(.|\n)*^#MULTIEND#" test.htm

on obtiendra le résultat suivant :

#MULTIBEGIN#
...
...
#MULTIEND#

Voir également

Système d'exploitation - Linux - Références de commandes et de programmes - egrep
Système d'exploitation - Linux - Références de commandes et de programmes - fgrep
Système d'exploitation - Linux - Références de commandes et de programmes - sed
Système d'exploitation - Linux - Références de commandes et de programmes - sh

Dernière mise à jour : Vendredi, le 1 janvier 2016