常用的g r e p选项有:
-c 只输出匹配行的计数。
-i 不区分大小写(只适用于单字符)。
-h 查询多文件时不显示文件名。
-l 查询多文件时只输出包含匹配字符的文件名。
-n 显示匹配行及行号。
-s 不显示不存在或无匹配文本的错误信息。
-v 显示不包含匹配文本的所有行。
-E 匹配“与”或者“或”模式。
例子:
查询myfile.txt空行的行数:grep -c '^$' myfile.txt
查询myfile.txt中test.conf所在行:grep -n 'test/.conf' myfile.txt
查询当前目录下所有txt中含IP地址格式为nnn.nnn.nnn.nnn的文件名:
grep -l '[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}/.[0-9]/{3/}' ./*.txt
使用grep匹配“与”或者“或”模式.grep命令加- E参数,这一扩展允许使用扩展模式匹配。例如,要抽取城市代码为219或216,方法如下:
grep –E ‘219|216’data.txt
219 aaaa
216 bbbb
表1 类名及其等价的正则表达式
类 | 等价的正则表达 |
[ [ : u p p e r : ] ] | [ A -Z ] |
[ [ : l o w e r : ] ] | [ a -z] |
[ [ : d i g i t : ] ] | [ 0 - 9 ] |
[ [ : a l n u m : ] ] | [ 0 - 9 a - zA-Z] |
[ [ : s p a c e : ] ] | 空格或t a b键 |
[ [ : a l p h a : ] ] | [ a - z A - Z ] |