grep : rechercher une chaine dans des fichiers sur Linux

Dans ce tutoriel, je vais vous expliquer comment rechercher une chaine dans un ou plusieurs fichiers sur Linux.

Une des caractéristiques de Linux, c’est de principalement utiliser des fichiers à plats pour les configurations ou encore les logs, contrairement à Windows qui va utiliser la base de registre ou des formats de fichiers spécifiques pour le stockage de configuration ou encore de logs.

Quand on a besoin de faire un recherche d’une chaine dans un fichier Linux, nous avons un outils de référence qui est la commande grep.

De façon basique la commande grep s’utilise la manière suivante :

grep "chaine-rechercher" /path/of/file.txt

Cette exemple va rechercher la chaine : chaine-rechercher dans le fichier file.txt qui se trouve à l’emplacement suivant /path/of/

Voici un exemple en recherchant le chaine rdr-it.com dans le fichier suivant /etc/nginx/sites-available/default

Maintenant, nous allons voir un exemple un peu plus large, en lui demandant de faire une rechercher récursive dans tous les fichiers d’un répertoire et sous répertoire. Pour cela on va ajouter l’option -r à la commande.

grep -r "chaine-rechercher" /path/of/file/

Si on reprend l’exemple de la chaine rdr-it.com dans le dossier /etc/nginx/sites-available/, on voit cette fois ci le fichier où la chaine a été trouvée.

D’autre paramètre utile :

  • -i : permet de ne pas tenir compte de la case, car Linux est sensible
  • -n : permet d’afficher le numéro de la ligne
  • -l : affiche seulement le fichier

Vous pouvez également utiliser des expressions régulières (RegEx) pour effectuer des recherches dans vos fichiers, ce qui peut être utile si vous recherche par exemple un numéro de sécurité social ou un RIB dans une liste de fichiers.

Voici un exemple pour rechercher une adresse IP :

grep -r -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"  /path/of/file/

Vous savez maintenant comme faire des recherches avec grep sur Linux.

Romain Drouche
Architecte Système | MCSE: Core Infrastructure
Expert en infrastructures IT avec plus de 15 ans d’expérience sur le terrain. Actuellement Chef de projet Systèmes et Réseaux et Référent SSI (Sécurité des Systèmes d’Information), je mets mon expertise au service de la fiabilité et de la sécurité des environnements technologiques.