grep множественное исключающее расширение
Я нахожу одно исключение расширение, как
grep --exclude "*.js" "a" *
Как написать несколько исключающих масок?
Я пробовал код ниже, но он не работает:
grep -r --exclude=*.\{html,htm,js} "li" *
grep -R -E '(\.js|rb)' "create" *
2 ответа
Решение
Вам следует избегать звездочки, а не фигурной скобки. Ваша команда должна выглядеть так:
grep -r --exclude=\*.{html,htm,js} "li" *
man grep * scroll scroll scroll *
--exclude = GLOB Пропускать файлы, базовое имя которых соответствует GLOB (с использованием подстановочных знаков). Глобус имени файла может использовать *,? И [...] в качестве подстановочных знаков, и \ to буквально цитировать подстановочный знак или символ обратной косой черты.
Посмотрите "Shell Globbing" для получения дополнительной информации
Пример:
$ grep -r --exclude = \ *. {png, jpg} a../moo.txt:a./moo.htm:a./hai:a $ ls hai hai.png moo.htm moo.txt