Я пытаюсь понять, как искать строку «_iterator_tag» рекурсивно во всех подкаталогах и в файлах с расширениями .cpp, .h, .hpp, .cxx, .inl, пока все, что я могу сделать, это искать каждый из этих файлов типы отдельно, как показано ниже grep -R "_iterator_tag" --include '* .cpp' Есть ли более быстрый способ поиска всех этих типов файлов вместе? Спасибо
использовать подтверждать. Он отлично подходит для поиска в исходном коде (а не для просмотра изображений или артефактов RCS, таких как каталоги .svn)
Вы можете указать несколько экземпляров --include
в командной строке (они пишутся вместе "или").
Изменить: в частности
grep -r --include '*.cpp' --include '*.h' --include '*.hpp' --include '*.cxx' --include '*.inl' "_iterator_tag" /some/path
пытаться
find /some/path -name \( '*.cpp' -o -name '*.h' -o -name '*.hpp' -o -name '*.cxx' -o -name '*.ini' \) | xargs grep "_iterator_tag"
Я определяю следующие псевдонимы в моем .bashrc
ffg() { eval find $1 | xargs -n 1 grep -nH $2 2>/dev/null ; }
fc() { ffg "-name \*.c -o -name \*.cpp" "$*"; }
fh() { ffg "-name \*.h -o -name \*.hpp" $* ; }
fch() { ffg "-name \*.c -o -name \*.cpp -o -name \*.h -o -name \*.hpp" $* ; }
Я обычно делал:
cd <root subdir>
fch _iterator_tag
Конечно, вам понадобится другой набор типов файлов.