Recherche d’informations dans des fichiers dans plusieurs répertoires

Je dois vérifier plusieurs fichiers situés à des emplacements différents pour obtenir des informations spécifiques.

Alors, comment faire un script qui vérifie le mot argument via plusieurs répertoires?

Les répertoires sont situés à des emplacements différents. Pour ex.

/ home / check1 /

/ opt / log /

/ var / status /

Vous pourriez aussi faire (à côté de «trouver») faire un

for DIR in /home/check1 /opt/log /var/status ; do grep -R searchword $DIR; done 

Au plus simple, cela revient à

 find . -name '*.c' | xargs grep word 

pour trouver un mot donné dans tous les fichiers .c du répertoire actuel et ci-dessous.

grep -R peut également fonctionner pour vous, mais cela peut poser problème si vous ne souhaitez pas rechercher tous les fichiers.

Utilisez l’option grep -R (recursive) et atsortingbuez plusieurs arguments à grep .

Essayez de trouver http://content.hccfl.edu/pollock/Unix/FindCmd.htm en utilisant vos mots-clés et les répertoires.

La page de manuel de grep devrait expliquer ce dont vous avez besoin. Quoi qu’il en soit, si vous avez besoin de rechercher de manière récursive, vous pouvez utiliser:

 grep -R --include=PATTERN "ssortingng_to_search" $directory 

Vous pouvez aussi utiliser:

 --exclude=PATTERN to skip some file --exclude-dir=PATTERN to skip some directories 

L’autre option est l’utilisation de find pour récupérer les fichiers et les diriger vers grep pour rechercher les chaînes.