Как исключить несколько каталогов, соответствующих шаблону glob в "grep -R"?
У меня есть несколько каталогов с именами типа "mm-yyyy" (01-2014) в текущем каталоге. Я хочу grep файлы в каталогах, имена которых имеют "2013". Как я могу исключить каталоги, чьи имена не имеют "2013"? Я пробовал следующее, но это не сработало:
grep hill * -R --exclude-dir=*201[0-2]
Он по-прежнему прошел через все подкаталоги, чтобы сделать grep.
Ответы
Ответ 1
вы можете использовать
grep -R hill *-2013
с помощью --exclude-dir
тоже должно работать:
grep -R hill --exclude-dir=".*201[0-2]" .
без котировок звездочка будет расширена на bash. Кроме того, подстановочный знак для регулярных выражений - .*
. - matches any character
* - match any number of repetitions of the previous character, including none
Ответ 2
grep -r --exclude-dir={dir1,dir2,dir3} string_to_search_for *