
При использовании grep с подстановочными знаками, как в
grep -in github */*
для каждого каталога grep
показывает много сообщений типа
grep: dir1/dir2: Is a directory
Как подавить эти сообщения?
К моему удивлению , использование флага --exclude-dir
не сработало.
Я использую grep (BSD grep) 2.5.1-FreeBSD
MacOS.
решение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 {} \;
В названиях каждого инструмента есть важные подсказки относительно его назначения :-).