以recursion方式grep多个文件types

我试图找出如何search所有子目录中的“_iterator_tag”stringrecursion和扩展名为.cpp,.h,.hpp,.cxx,.inl的文件现在我所能做的就是search这些文件中的每一个types分别如下grep -R“_iterator_tag”–include'* .cpp'是否有更快的方法来search所有这些文件types? 谢谢

使用ack 。 search源代码(而不是查看图像或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 

当然,你需要一组不同的文件types。