2010-10-25 2 views
1

Например, у меня есть/путь/к/папке и хотите, чтобы увидеть, если он содержит «KEYWORD1», «слово 2» или «KEYWORD3» и результат будет (когда 2 найдены):Как скопировать каталог для существования ключевого слова?

/path/to/folder: keyword1 keyword3 

Я попытался с показанными параметрами here, но он не работает для папок.

ответ

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

Ваш ответ помог больше всего. Благодаря! – Ragnar

1

Если говорить о ключевых слов в именах файлов

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

, если вы говорите о поиске этих ключевых слов в файлах, которые находятся в папке, вы можете использовать такие инструменты, как grep

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

, если вам нужно указать, какие ключевые слова будут найдены

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

Это будет почти трюк, за исключением того, что он не выводит WHICH ключевые слова были найдены. – Ragnar

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

будет возвращать что-то вроде этого:

file.one:This текст содержит KEYWORD1.
file.two: keyword2 можно найти в этом файле.
file.six: Это ключевое слово перечисление: keyword1, keyword2, ключевое слово 3.

Смежные вопросы