Comment puis-je récursivement grep
tous les répertoires et sous-répertoires ?
find . | xargs grep "texthere" *
grep -r "texthere" .
Le premier paramètre représente l'expression régulière à rechercher, tandis que le second représente le répertoire dans lequel la recherche doit être effectuée. Dans ce cas, .
signifie le répertoire courant.
Note : Ceci fonctionne pour GNU grep, et sur certaines plateformes comme Solaris, vous devez spécifiquement utiliser GNU grep par opposition à l'implémentation ancienne. Pour Solaris, il s'agit de la commande ggrep
.
Si vous connaissez l'extension ou le motif du fichier que vous souhaitez, une autre méthode consiste à utiliser l'option --include
:
grep -r --include "*.txt" texthere .
Vous pouvez également mentionner les fichiers à exclure avec --exclude
.
Si vous effectuez fréquemment des recherches dans le code, Ag (The Silver Searcher) est une alternative beaucoup plus rapide à grep, qui est adaptée à la recherche dans le code. Par exemple, il est récursif par défaut et ignore automatiquement les fichiers et répertoires listés dans .gitignore
, ainsi vous n'avez pas besoin de passer les mêmes options d'exclusion encombrantes à grep ou find.