сейчас я использую что-то вроде этого:
find . -name "*.xml" | xargs grep -l "foobar"
он работает, но мне было интересно, встроена ли эта функция в grep?
POSIX grep не имеет таких параметров, но coreutils
grep делает.
grep -r --include='*.xml' -l foobar .
должен это сделать.
FreeBSD grep
(и OS X), похоже, имеют то же самое, в Solaris и AIX они отсутствуют, AFAICT.
Вы также можете:
find . -name "*.xml" -exec grep -l "foobar" {} \;
Ты можешь использовать подтверждать где эта команда будет
ack --xml -l foobar
Обратите внимание, что ack
Типы файлов означают, что он учитывает не только файлы * .xml. Любой файл с расширением .xml, .dtd, .xsl, .xslt или .ent будет выбран для поиска под флагом --xml. Видеть ack --help-types
для списка типов и расширений.