grep 搜索命令使用格式为:

grep 【搜索规则】【搜索的关键字】【路径】

【搜索规则】:
一些常用的:
-i :忽略大小写;
-l :小写的 L ,只显示文件名,不显示匹配的文本;
-r :当前路径下循环搜索;
-n :结果输出显示行号;
-w :–word-regexp ,精确匹配,仅匹配特定的字符,如只需要搜索 abc 不需要 abcd 、aabc 的情况;
-I :大写的 i ,同于 --binary-files=without-match ,忽略匹配二进制文件;
–include=FILE_PATTERN :只查找匹配 FILE_PATTERN 的文件 ;
–exclude=FILE_PATTERN :跳过匹配 FILE_PATTERN 的文件和目录;
-v:同 --invert-match ,选中不匹配的行

【搜索的关键字】:就是你要搜索的关键字。

【路径】:
可以是文件,也可以是文件夹。如果是文件夹,搜索规则需要加上 -r 。

使用示例:

1.在指定文件中搜索关键字 key

grep key test.txt

如果要搜索的关键字带空格,需要加上双引号,

grep "key key" test.txt

2.在指定文件中搜索关键字 key ,忽略大小写

grep -i key test.txt

3.在当前路径循环搜索关键字 key
在当前路径下搜索关键字,如有文件夹,文件夹内也能搜索到。

grep -r key ./

4.在当前路径循环搜索关键字 key,并显示关键字所在行号

grep -rn key ./

5.在当前路径循环搜索关键字 key,只显示匹配到的文件

grep -rl key ./

上述几项的比较:

linux grep 多个关键词 linux grep关键字_搜索

6.在当前路径循环搜索关键字 key ,并显示所在行号,忽略二进制文件
有时候搜索关键字,会匹配到大量的二进制文件,如 zip 、so 等文件也匹配上。
不需要匹配这些二进制文件时,加上参数 I 。这个是大写的 i

grep -rnI key ./

也可以这样使用,效果是一样的。

grep -rn key --binary-files=without-match ./

7.在当前路径循环搜索关键字 key ,并显示所在行号,只搜索特定后缀的文件

grep -rn key --include=*.java ./

8.在当前路径循环搜索多个关键字并显示所在行号

grep -rn -e key1 -e key2 ./

9.在当前路径循环搜索关键字 key ,但反向输出结果
反向输出结果的意思是,搜索关键字 key ,但输出显示不包含关键字 key 的行。

grep -rv key ./