grep 也是 linux 中查找的一个利器, 运维, 程序员必掌握的
下面针对 grep 的参数进行说明:
--color
重点标记匹配到项
- grep "a word" datafile --color=auto
- -E
grep 使用正则表达式, 也可直接用 egrep
- grep -E "a.e" datafile
- -o
只输出匹配到的文本部分
grep -E "a.e" datafile
只显示 awe, 不显示一行内容
-v
显示除了匹配到行之外的其他行
grep -v My datafile
不显示包含 My 的行, 其他行都显示
-c
统计包含匹配字符串的行数 (不是匹配次数)
grep -c My datafile
打印匹配次数, 可以使用如下方法:
- grep -o My datafile|wc -l
- -n
同 cat 一样, 打印出行号, 多个文件时在最前面打印文件名
- grep -n My datafile1 datafile2
- datafile1:3:My name is Han
- datafile2:1:where My bag
- -b
显示匹配字符的偏移量, 和 - o 一起使用
grep -bo My datafile
-l 和 - L
在搜索多个文件时使用
-l 显示哪个搜索文件里包含匹配项
-L 显示哪些文件中不包含匹配项
grep -l My datafile
-r 和 - R
意思相同, 即递归查询目录中所有文件 / 目录
grep -r My .
在当前目录下查找包含 My 的文件
-i
忽略大小写
grep -i My datafile
在 datafile 中搜索 my/My/MY/mY
-e
匹配多个样式
grep -e My -e Your datafile
查找包含 My 和 Your 的行, 同如下语句:
- grep -E "My|Your" datafile
- -f
查找给定文件中的匹配项
- grep -f file datafile
- --include/exclude
在 / 不在某些文件中查找
- grep "main" -r --include *.{c,cpp}
- -q
静默输出, 不打印出来. 若匹配到则为 0
-A
打印匹配行后面的几行, 包括匹配行
-B
打印匹配行前面的几行, 包括匹配行
-C
打印匹配行前后的几行, 包括匹配行
如上若有多个匹配, 则用 -- 分隔开
来源: http://www.bubuko.com/infodetail-2657708.html