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

Подобный вопрос

Другие вопросы по тегам