2010-10-25 6 views
1

Par exemple, j'avoir un/chemin/vers/dossier et que vous voulez voir si elle contient « keyword1 », « keyword2 » ou « mot clé3 » et le résultat serait (quand 2 se trouvent):Comment grep répertoire pour l'existence de mot-clé?

/path/to/folder: keyword1 keyword3 

J'ai essayé avec les options affichées here mais cela ne fonctionne pas pour les dossiers.

Répondre

1
echo -n '/path/to/folder:'; for kw in {keyword1,keyword2,keyword3}; do grep -qr $kw /path/to/folder/; if [ $? == 0 ]; then echo -n " "$kw; fi; done 
+0

Votre réponse a aidé le plus. Merci! – Ragnar

1

Si vous parlez des mots-clés dans les noms de fichiers

shopt -s nullglob 
for file in *keyword1* *keyword2* *keyword3* 
do 
    echo "$file" 
done 

si vous parlez de trouver ces mots-clés dans les fichiers qui se trouvent dans votre dossier, vous pouvez utiliser des outils comme grep

grep -l -E "keyword1|keyword2|keyword3" *

si vous avez besoin de montrer quels mots-clés sont trouvés

grep -Eo "keyword1|keyword3|keyword2" * 
+0

Il fera presque l'affaire sauf qu'il ne sort pas quels mots-clés ont été trouvés. – Ragnar

0
grep -E "keyword1|keyword3|keyword2" * 

retournera quelque chose comme ceci:

texte file.one:This contient keyword1.
file.two: Le keyword2 peut être trouvé dans ce fichier.
file.six: Il s'agit d'un mot-clé énumération: mot-clé1, mot-clé2, mot-clé3.