Linux Lignes de commandes
grep
Rechercher une chaine de caractère



Pour : Linux (Debian, Ubuntu, ...)


La commande "grep" permet de rechercher une expression rationnelle dans un ou plusieurs fichiers.
Syntaxe de base:

grep [options] [chaine_de_caractère] [emplacement_de_la_recherche]



Rechercher dans un fichier

On va par exemple afficher les lignes contenant le mot "voiture" du fichier "test.txt":

cedric@pc-sport:/$ grep voiture test.txt Essence 57,30¤ Voiture Essence 33,21¤ Voiture





L'option "-n" pour afficher le numéro de ligne

Il peut être utile de connaitre le numéro de ligne de chaque résultat, pour cela il suffit de rajouter l'option "-n".
Exemple:

cedric@pc-sport:/$ grep -n voiture test.txt 80:Essence 57,30¤ Voiture 120:Essence 33,21¤ Voiture


Comme vous pouvez voir dans l'exemple le numéro de ligne s'affiche au debut de chaque résultat.
On retouve donc le mot "voiture" aux lignes 80 et 120 du fichier "test.txt".



L'option "-c" affiche le nombre d'occurence trouvé

Vous pouvez afficher le nombre de fois qu'une chaine de caractère apparait dans un fichier avec l'option "-c".
Exemple:

cedric@pc-sport:/$ grep -c voiture test.txt 2


Comme vous voyez l'option "-c" nous indique qu'il a touvé "2" fois le mot voiture.



Rechercher une occurance dans tout les fichiers d'un répertoire

Pour rechercher par exemple la chaine de caractère "voiture" dans le contenu des fichiers du répertoire courant.

cedric@pc-sport:/$ grep voiture * test.txt:Essence 57,30¤ Voiture test.txt:Essence 33,21¤ Voiture



Dans un autre répertoire.

cedric@pc-sport:/$ grep voiture /home/cedric/Desktop/*





L'option "-l" pour afficher que les noms de fichiers

Il est possible d'afficher que le nom des fichiers qui contient une chaine de caractère grace à l'option "-l".

cedric@pc-sport:/$ grep -l voiture /home/cedric/Desktop/* /home/cedric/Desktop/test.txt


Comme vous pouvez le voir le mot "voiture" a été trouvé dans le fichier "test.txt" du répertoire "/home/cedric/Desktop".



L'option "-r" pour faire une recherche récurcive

Cette option "-r" permet d'exécuter la commande grep dans le contenu du répertoire cible ainsi que dans tout les sous-répertoires.
Par exemple on va rechercher le mot voiture dans tout les sous-dossiers "/home/cedric".

cedric@pc-sport:/$ grep -l -r voiture /home/cedric/* /home/cedric/octet.txt /home/cedric/Desktop/test.txt /home/cedric/Documents/essai.txt


L'exemple nous montre qu'il y à trois fichiers dans trois répertoire différent qui contient la chaine de caractère "voiture".



L'option "-i" pour ne pas tenir compte des minuscules et des MAJUSCULES

Par défault la commande "grep" est sensible à la case, c'est à dire que pendant une recherche grep ne pourra pas trouver un mot qui est écrit en majuscule alors que dans la recherche il a été écrit en minuscule.



Par O.Cédric
Sur www.octetmalin.net

Article publié le:
08/11/2011 16:05





Cette page vous à plus?

Dîtes que vous l'aimez en cliquant sur le bouton Facebook.