Назад | Перейти на главную страницу

Есть ли способ использовать grep с ограниченным типом файла?

сейчас я использую что-то вроде этого:

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 для списка типов и расширений.