2

Я нахожу одно исключение расширение, как

grep --exclude "*.js" "a" *

Как написать несколько исключающих масок?

Я пробовал код ниже, но он не работает:

grep -r --exclude=*.\{html,htm,js} "li" *

grep -R -E '(\.js|rb)' "create" * 

2 ответа2

6

Вам следует избегать звездочки, а не фигурной скобки. Ваша команда должна выглядеть так:

grep -r --exclude=\*.{html,htm,js} "li" *
2

man grep * scroll scroll scroll *

 --exclude=GLOB
          Skip files whose base name matches GLOB (using wildcard  matching).
          A  file-name  glob  can use *, ?, and [...]  as wildcards, and \ to
          quote a wildcard or backslash character literally.

Посмотрите "Shell Globbing" для получения дополнительной информации

Пример:

$ grep -r  --exclude=\*.{png,jpg} a .
./moo.txt:a
./moo.htm:a
./hai:a

$ ls
hai  hai.png  moo.htm  moo.txt

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .