grep - 我怎样才能递归地grep,但只能在具有某些扩展名的文件中?

标签 grep

我正在编写 grep 的脚本某些目录:

{ grep -r -i CP_Image ~/path1/;
grep -r -i CP_Image ~/path2/;
grep -r -i CP_Image ~/path3/;
grep -r -i CP_Image ~/path4/;
grep -r -i CP_Image ~/path5/; }
| mailx -s GREP email@domain.example

如何将结果限制为仅扩展 .h.cpp

最佳答案

只需使用 --include 参数,像这样:

grep -inr --include \*.h --include \*.cpp CP_Image ~/path[12345] | mailx -s GREP email@domain.example

这应该可以满足您的需求。

HoldOffHunger's answer获得解释下面:

  • grep:命令

  • -r:递归

  • -i:忽略大小写

  • -n:每个输出行前面都有其在文件中的相对行号

  • --include\*.cpp:所有 *.cpp:C++ 文件(用\转义,以防万一你有一个文件名中带有星号的目录)

  • ./:从当前目录开始。

关于grep - 我怎样才能递归地grep,但只能在具有某些扩展名的文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516937/

相关文章:

grep 使用列表查找文件中的匹配项,并仅打印列表中每个字符串的第一次出现

regex - 匹配 "war"但不匹配 "software"

bash - 组合两个 grep 命令来处理来自文件的输入,或者 grep 行以一个特定的子字符串开头并在其后包含另一个

linux - grep : Memory Exhausted on comparing two files to find the delta

awk - grep 匹配模式后的下一个单词,直到第一个空格

regex - 正则表达式与egrep

bash - 如果没有结果,如何停止 grep 创建空文件

linux - 如何在日志文件中查找变量的下一个实例?

java - 在 Java 代码中使用 Grep

linux - 从文件开头到给定参数用 sed 进行 Grepping