有没有办法用受限文件类型进行 grep ?

有没有办法用受限文件类型进行 grep ?

现在我正在使用这样的东西:

find . -name "*.xml" | xargs grep -l "foobar"

它可以工作,但是我想知道 grep 是否内置了此功能?

答案1

POSIX grep 没有这样的选项,但coreutilsgrep 有。

grep -r --include='*.xml' -l foobar .

应该这么做。

FreeBSD grep(和 OS X)似乎有同样的东西,而 Solaris 和 AIX 据我所知缺少它们。

答案2

您还可以这样做:

find . -name "*.xml" -exec grep -l "foobar" {} \;

答案3

您可以使用确认该命令的位置

ack --xml -l foobar

请注意,ack的文件类型意味着它不仅仅考虑 *.xml 文件。任何扩展名为 .xml、.dtd、.xsl、.xslt 或 .ent 的文件都将被选中在 --xml 标志下进行搜索。请参阅 了解ack --help-types类型和扩展名的列表。

相关内容