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.