grep: Как исключить каталоги?

grep: Как исключить каталоги?

При использовании grep с подстановочными знаками, как в

grep -in github */*

для каждого каталога grepпоказывает много сообщений типа

grep: dir1/dir2: Is a directory

Как подавить эти сообщения?

К моему удивлению , использование флага --exclude-dirне сработало.

Я использую grep (BSD grep) 2.5.1-FreeBSDMacOS.

решение1

-d skipзаставит grep пропускать каталоги:

grep -in -d пропустить github/

В соответствии сэта страница руководства MaxOSэта опция должна работать для MacOS grep. Если окажется, что это не работает с MacOS grep, который вы можете установить, тоМенеджер пакетов Homebrew MacOSа затем используйте Homebrew для установкиGNU-версия grep, поскольку GNU grep поддерживает -d skip(хотя в этом случае вам придется сделать каталог, содержащий GNU grep, первым в вашей PATHпеременной окружения).

решение2

Использовать findдлянаходитьфайлы и grepкг/ре/пв файлах:

find . -mindepth 2 -maxdepth 2 -type f -exec grep -in github {} \;

В названиях каждого инструмента есть важные подсказки относительно его назначения :-).

Связанный контент