Recherche dans tous les fichiers

2 min de lecture
Recherche dans tous les fichiers

Objectif

Pour rechercher une chaîne de caractères dans tous les fichiers d’un répertoire et de ses sous-répertoires sous Linux, on utilise la commande grep avec l’option récursive.


Recherche récursive de base

grep -r "chaîne_de_caractères" /chemin/vers/le/répertoire

Explication des paramètres

  • -r : active la recherche récursive dans les sous-répertoires.
  • "chaîne_de_caractères" : texte à rechercher.
  • /chemin/vers/le/répertoire : répertoire cible.

Si vous êtes déjà positionné dans le répertoire concerné, utilisez simplement :

grep -r "chaîne_de_caractères" .

Le point . représente le répertoire courant.


Exemple concret

Rechercher le mot test dans le répertoire actuel et tous ses sous-répertoires :

grep -r "test" .

Afficher les numéros de ligne

Pour afficher également les numéros de ligne où apparaît la chaîne recherchée, ajoutez l’option -n :

grep -rn "test" .

Résultat :

  • Liste des fichiers correspondants
  • Lignes contenant la correspondance
  • Numéro de ligne associé

Options utiles supplémentaires

Option Description
-i Ignore la casse (majuscule/minuscule)
-n Affiche les numéros de ligne
-l Affiche uniquement les noms de fichiers correspondants
-c Compte le nombre d’occurrences par fichier
--exclude-dir Exclut certains répertoires

Exemple avec insensibilité à la casse :

grep -rni "test" .

Bonnes pratiques

  • Combinez -r avec -n pour faciliter l’analyse.
  • Utilisez --exclude-dir=node_modules pour éviter les répertoires volumineux inutiles.
  • Redirigez la sortie vers un fichier si nécessaire :
grep -rn "test" . > resultats.txt

Conclusion

La commande grep est un outil essentiel sous Linux pour effectuer des recherches textuelles rapides et puissantes dans une arborescence complète de fichiers. En combinant les options adaptées, vous pouvez affiner précisément vos résultats et gagner du temps lors du diagnostic ou de l’analyse de code.