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
- Vous ne devez pas utiliser le paramètre «-o» avec les paramètres «-A» ou «-B», car sinon vous n'aurez pas lignes précédentes et suivantes du résultat de recherche.
- Si vous n'êtes pas familier avec cette commande, il peut être plus simple d'utiliser l'utilitaire mc («Midnight Commander») dans le menu «Command», l'option «Find Files».
- Windows : Si vous utilisez le système d'exploitation Windows, vous devriez plutôt utiliser la commande «findstr» pour obtenir des résultats équivalents (findstr pour Windows XP, findstr pour Windows Server 2003, findstr pour Windows 7, findstr pour Windows Server 2008,...).
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 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» :
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