grep命令
语法格式:
grep [option] regular express [file]
这里基本正则表达式可以为字符串。字符串用双引号,这是防止被shell误认为是其他命令;正则表达式用单引号括起来。
option选项:
-c 只输出匹配行的计数
-i 不区分大小写(只适用于单字符)
-h 查询多文件时不显示文件名
-l 查询多文件时只输出包含匹配字符的文件名
-n 显示匹配行及行号
-s 不显示不存在的或者无匹配文本的错误信息
-v 显示不包含匹配文本的所有行
例如:
查找匹配包含数字999的行
grep ‘9\{3,\}’ data.log
查找数字重复出现次数在一定范围内,比如数字8重复出现2到6次并以3结尾:
grep ‘8\{2,6}3’
匹配空行:
grep ‘^$’ myfile
查询mmm.mmm这类ip:
grep ‘[0-9]\{3\}\.[0-9]\{3\}\.’ ipfile
pattern\{n\} 匹配模式出现n次
pattern\{n,\} 匹配模式出现最少n次
pattern\{n,m}匹配模式出现次数在n-m之间。n,m为0-255之间的任意整数。
grep允许使用国际字符模式匹配或匹配模式的类名形式:
grep ‘5[[:upper:]] [[:upper:]]’ datafile
egrep代表expression或者extended grep,适情况而定。egrep接受所有的正则表达式,egrep的一个显著特性是可以以一个文件作为保存的字符串,然后将之传给egrep作为参数,为此使用-f开关。
在data.f中按照 -f指定的文件grepstrings中的所有模式进行查找
egrep -f grepstrings data.f
结合其他命令一起使用:
who | egrep (Jerry|Matty|Tom)