我正在编写一些脚本来grep
某些目录,但这些目录包含各种文件类型。
我想grep
只是.h
和.cpp
现在,但也许其他几个人的未来。
到目前为止,我有:
{ 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 protected]
任何人都可以告诉我如何添加特定的文件扩展名?
只需使用--include
参数,如下所示:
grep -r -i --include \*.h --include \*.cpp CP_Image ~/path[12345] | mailx -s GREP [email protected]
应该做你想要的。
语法说明:
-r
- 递归搜索-i
- 不区分大小写的搜索--include=\*.${file_extension}
- 仅搜索与扩展名或文件模式匹配的文件其中一些答案似乎语法太重,或者它们在我的 Debian 服务器上产生了问题。这对我很有用:
PHP 革命:如何在 Linux 中 Grep 文件,但只有某些文件扩展名?
即:
grep -r --include=\*.txt 'searchterm' ./
... 或不区分大小写的版本......
grep -r -i --include=\*.txt 'searchterm' ./
grep
:命令
-r
:递归地
-i
:ignore-case
--include
:all * .txt:文本文件(用 \ 文件转义,以防你在文件名中有一个带星号的目录)
'searchterm'
:搜索什么
./
:从当前目录开始。
怎么样:
find . -name '*.h' -o -name '*.cpp' -exec grep "CP_Image" {} \; -print