LinuxÉdu-Québec

Accueil À propos de nous Contact Plan du site
Accueil du site > Applications > Administration système > Grep, ou un moteur de recherche de fichier surpuissant

Le mercredi 20 août 2003, par Benoit St-André

Grep, ou un moteur de recherche de fichier surpuissant

Grep, une commande toute simple qui permet de chercher à l’intérieur des fichiers, ou encore, à partir de la sortie du terminal.

Deux petits exemples :
- Je cherche un mot qui devrait être dans un fichier (je ne sais pas lequel, évidemment), quelque part dans une application php que j’ai installé....

La commande : grep -R "le mot ou les mots que je cherche" *

et ça vous donne comme résultat le nom du fichier qui contient ce que vous cherchez et la ligne où il l’a trouvé.

- Vous regardez vos fichiers de log avec la commande tail (qui permet de voir la "queue" (tail, la fin) du fichier). Par exemple, tail -100 /var/log/messages (affiche les 100 dernières lignes du fichier messages).

Maintenant, disons que vous ne voulez que les lignes qui parlent de sshd (le démon ssh). Comment faire ? On pourrait toujours afficher les 2000 dernières lignes du fichier, mais ça ne serait pas très pratique...

À la place, on fait afficher le fichier complet (avec la commande cat) et on le filtre à l’aide de grep : cat /var/log/messages | grep "sshd"

Ce qui fait le filtre est le caractère appelé "pipe", soit le "|".

Avez-vous d’autres beaux exemples d’utilisation de grep ? Dites-nous les dans le forum ci-dessous !

3 Messages de forum

  • 22 août 2003 12:17

    La commande grep peut elle-même faire l’objet d’une redirection ou d’un filtre |

    Par exemple, je cherche un paquetage installé (rpm) contenant "ffice" dans son nom :

    rpm -qa | grep ffice

    me donne

    koffice-i18n-fr-1.2.1-2mdk

    koffice-1.2.1-8mdk

    Quelle est la liste des paquetages de XFree86 installés sur mon poste ?

    rpm -qa | grep XFree | sort

    je filtre le tout avec sort pour que le résultat soit trié.

    la même commande suivi d’un > nom_de_fichier envoie le tout dans un simple fichier texte, ainsi :

    rpm -qa | grep kde | sort > /mes_paquetages_xfree.txt

    va insérer le résultat de ma commande dans le fichier mes_paquetages_xfree.txt dans mon répertoire personnel (représenté par le tilde).

    ls /mnt/cdrom/Mandrake/RPMS | grep png

    va me donner le ou les fichiers du répertoire Mandrake/RPMS de mon cédérom avec les lettres png quelque part dans le nom.

    Vous voyez le principe, grep est une commande dont je ne saurais me passer !

    R. Ouellette

  • 9 octobre 2003 20:39, par Paul Lalonde

    Bonsoir, il est plus complet et simple d’utiliser la commande :

    $ grep -i sshd /var/log/messages

    Ça évite une redirection, les guillements étant facultatifs ici. L’option -i dit à grep de ne pas tenir compte de la casse.

  • 22 mars 2006 21:33, par youness
    recherche les lignes contenant les deux mots Le et roi dans un fichier

Applications | LinuxÉdu-Québec | Revue de presse | Projets | Événements - colloques | Réflexion et opinion | Système d’exploitation