您的位置:首页 > 运维架构 > Linux

linux下grep、egrep及正则表示式的常用使用方法

2014-02-14 12:41 405 查看
1、简介
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配到的行打印出来。grep全称是Globally search for a Regular Expression and print out the line,表示全局搜索正则表达式并打印匹配结果的意思。Linux下所有用户都可以使用。

2、格式

grep [option] "pattern" FILE

3、常用选项

-v:显示除匹配结果以外的所有内容
没有使用-v选项的效果:



使用-v选项后的效果:




-i:忽略大小写



-o:只显示匹配到的内容
没有使用-o选项的效果:



使用-o选项后的效果:



--color=auto : 表示使用颜色填充匹配到的内容,使其高亮显示



-A n : n为数字,表示显示匹配到内容及其后面的n行
-B n : n为数字,表示显示匹配到内容及其前面的n行
-C n : n为数字,表示显示匹配到内容及其前后的n行
正常显示效果:



-A 1,效果:



-B 1,效果:



-C 1,效果:




-E:等同于egrep,使用扩展的正则表达式

4、基本正则表达式元字符

^ : 表示锚定行首,格式:
‘^pattern’



& : 表示锚定行尾,格式:
'pattern$'



特殊用法: ^$,表示匹配空白行:

. : 表示匹配任意单个字符



* : 表示匹配之前的字符任意次
.* : 表示匹配任意长度的任意字符



[] : 表示匹配范围内任意单个内容
[^] : 表示匹配范围外任意单个内容

常用范围表示格式:
[0-9] : 表示所有数字 等同于 [[:digit:]]
[a-z] : 表示所有小写字母 等同于 [[:lower:]]
[A-Z] : 表示所有大写字母 等同于 [[:upper:]]
[a-zA-Z] : 表示所有字母 等同于 [[:alpha:]]
[a-zA-Z0-9] : 表示字母和数字 等同于 [[:alnum:]]
[[:graph:]] : 表示非空字符(非空格、控制字符)
[[:cntrl:]] : 表示控制字符
[[:punct:]] : 表示标点符号
[[:print:]] : 表示非空字符(包含空格)
[[:space:]] : 表示空白字符



\? : 表示匹配之前的字符0次或1次
.\? : 表示匹配任意字符0次或1次



\{m,n\} : 表示匹配之前的字符至少m次,最多n次
\{0,n\} : 表示匹配之前的字符最多n次
\{m,\} : 表示匹配之前的字符至少m次
\{m\} : 表示匹配之前的字符m次



\< : 表示单词词首锚定,等同\b
\> : 表示单词词尾锚定,等同\b
\<word\> : 表示锚定单词,等同\bword\b




\(pattern\) : 表示分组
\(pattern\).*\1 : 表示引用前面分组内容



5、egrep和grep的区别地方:

增加的元字符
+ : 表示匹配前面的字符至少一次



| : 表示匹配符号两边的任意一边,比如a|b,表示匹配a或者b



注意,| 左右带括号和不带括号的区别

变化的元字符
? : 等同于grep中的\?,在egrep中不需要反义
() : 等同于grep中的\(\),在egrep中不需要反义
{} : 等同于grep中的\{\},在egrep中不需要反义









以上就是grep和egrep的简单用法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: