现在我正在使用这样的东西:
find . -name "*.xml" | xargs grep -l "foobar"
它的工作原理,但我想知道如果grep有内置的这个function?
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
ack --xml -l foobar
请注意, ack
的文件types意味着它不仅仅考虑* .xml文件。 任何扩展名为.xml,.dtd,.xsl,.xslt或.ent的文件都将被选中在–xml标志下进行search。 请参阅ack --help-types
以获取types和扩展名列表。