linux中grep/egrep的使用
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
打印匹配行前后的几行,包括匹配行
如上若有多个匹配,则用--分隔开