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 ./
上述几项的比较:
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 ./