53 votes

grep récursif : exclure des répertoires spécifiques

J'utilise beaucoup le grep récursif pour trouver des fichiers sources au contenu spécifique.

grep -Rni "myfunc" .

Sur des bases de code importantes, cela peut devenir lent, c'est pourquoi j'utilise --incldue pour restreindre les extensions ou les mettre sur liste blanche.

grep -Rni --include=*.java "myfunc" .

Cependant, je pense qu'il serait plus efficace d'exclure (élaguer) des sous-répertoires entiers :

grep -Rni --exclude=/.svn/ "myfunc" .

Mais l'option --exclude ne prend en charge que les modèles de fichiers comme *.java ci-dessus. Comment puis-je exclure des répertoires ?

0voto

Akshatha Points 101

Vous pouvez essayer de faire ceci :

grep -R  "myfunc" . | grep -v path_to_exclude/

Par exemple, si vous ne souhaitez pas rechercher le contenu des fichiers journaux, procédez comme suit :

grep -R "myfunc" . | grep -v log/

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X