Dans le cas le plus simple, grep est utilisé pour afficher les lignes contenant un certain mot. Pour chercher les lignes contenant le nom Durand dans un fichier de contact téléphonique :
grep Durand ListeNuméros.txt
qui retournera seulement les lignes contenant Durand :
Mathieu Durand, 0723237694 Bernard Durand, 0966324355
Pour chercher la chaine plop dans tous les fichiers du répertoire courant :
grep plop *
Pour chercher la chaine plop dans tous les fichiers du répertoire courant ainsi que dans les sous-répertoires (le caractère . est un chemin relatif qui désigne le répertoire courant) :
grep -r plop .
Idem recherche précédente, mais en ne retournant que les noms des fichiers qui contiennent plop :
grep -lr plop .
Pour les cas plus élaborés, grep permet de faire des recherches à l'aide d'expressions rationnelles. Pour rechercher toutes les lignes qui commencent par la lettre 'A' ou 'a' dans les fichiers du répertoire courant :
grep '^[Aa]' *
Utilisé derrière un pipe, il permet de filtrer des sorties standards, par exemple pour trouver les processus du démon httpd en retirant la ligne du grep :
ps auxwww | grep httpd | grep -v grep
Le pipe permet également de séparer des alternatives à une recherche (mais il faut le faire précéder d'une contre oblique pour ne pas chercher le caractère 'barre verticale' lui-même). Ainsi pour chercher les lignes contenant 'Dupont', 'Dupond' ou 'Durand', on entre :
grep 'Dupont\|Dupond\|Durand' *
Utilisé avec la commande find, on obtient un outil de recherche performant, permettant par exemple trouver tous les fichiers correspondants à un masque contenant une chaine de caractères bien précise :
find /usr/src/linux -name "*.[ch]" -exec grep -li "foobar" {} \;
La commande find de Windows réalise les fonctions les plus basiques de grep. Par exemple, la commande find "partition" c:\b* affichera les lignes du fichier boot.ini qui contiennent le mot partition.
la commande find met %errorlevel% à 0 si la chaine est trouvée, à 1 autrement ; le code suivant recherche la chaine "texte" dans le fichier document.txt :
find /I "texte" document.txt if "%errorlevel%" == "1" goto non_trouve echo la chaine a été trouvee goto fin :non_trouve echo chaine non trouvee :fin
Pour avoir le même grep sous Windows, il est nécessaire d'installer cygwin. On peut également trouver une version adaptée sur le site de Tim Charron (voir les liens externes plus bas).
La commande include de Cisco IOS réalise les fonctions les plus basiques de grep. Par exemple, la commande show running-config | include 192.168.1.1 affichera les lignes de la configuration active qui contiennent l'adresse 192.168.1.1.