grep как исключить подкаталог - PullRequest
0 голосов
/ 11 ноября 2019

Я использую grep для поиска строки и хочу исключить один каталог с grep -rl --exclude-dir=application/res --colour 'super', но он также показывает совпадение в каталоге application/res/.

Хотя при использовании grep -rl --exclude-dir=application --colour 'super' ничего не найденоapplication путь.

Как исключить один подкаталог при использовании grep.

версия grep:

$ grep -V
grep (GNU grep) 2.20

grep help:

  -r, --recursive           like --directories=recurse
  -R, --dereference-recursive
                            likewise, but follow all symlinks
      --include=FILE_PATTERN
                            search only files that match FILE_PATTERN
      --exclude=FILE_PATTERN
                            skip files and directories matching FILE_PATTERN
      --exclude-from=FILE   skip files matching any file pattern from FILE
      --exclude-dir=PATTERN directories that match PATTERN will be skipped.

1 Ответ

2 голосов
/ 11 ноября 2019

Используя find, вы можете исключить весь путь с косыми чертами:

find . -path ./application/res -prune -o -type f -exec grep -l super {} +

Несмотря на то, что он более переносим, ​​он будет медленнее, чем grep -r. Но, насколько я понимаю, GNU grep не предоставляет механизм для исключения путей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...