Rechercher un mot dans plusieurs fichiers ou dossiers sous linux

I. Présentation

Il vous est surement déjà arrivé d'utiliser la commande grep pour rechercher une chaine de caractère dans un fichier. Dans ce tutoriel, nous allons voir comment rechercher un mot avec la commande grep quand la recherche porte sur plusieurs fichiers ou dossiers.

II. La commande grep récursive

La commande reste sensiblement la même, il faut juste y ajouter l'option "-r" qui indique la récursivité de la recherche. Par exemple si nous voulons rechercher tous les fichiers contenants le mot "connect" :

grep -r connect ./

La commande grep est donc exécutée avec l'option "-r" (récursivité), le mot à rechercher puis le ou les dossiers/fichiers à analyser. "./" signifie que la recherche s'effectuera sur tout le répertoire actuel ainsi que sur les sous répertoires.

III. Quelques options supplémentaires

Pour étendre légèrement votre recherche, vous pouvez utiliser l'option "-i" au lancement de votre commande pour la rendre insensible à la casse (la différence entre majuscules et minuscules).

grep -r -i connect ./

Cela donnera le résultat suivant:

grep01

Pour cette commande, toutes les lignes des fichiers renvoyant "connect", "Connect", "CONNECT", etc ... seront dans le résultat de la recherche. Vous pouvez simplifier le résultat de votre recherche en y ajoutant l'option "-l". Ainsi, seul les noms des fichiers apparaitront. Sans cette option, vous aurez le nom du fichier ainsi que la ligne contenant le mot recherché, ce qui peut rendre le résultat de la recherche peut lisible si il y a beaucoup de résultats.

grep -r -i - l connect ./

Cela donnera le résultat suivant :

grep02

grep contient beaucoup d'options d'exécution, ce qui en fait un outil très puissant.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Fondateur d'IT-Connect.fr et d'Information-security.fr. Auditeur sécurité chez Amossys.

    mickael has 478 posts and counting.See all posts by mickael

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

     

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.