码迷,mamicode.com
首页 > 其他好文 > 详细

grep以及正则表达式

时间:2015-12-22 06:37:36      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:linux运维

grep以及正则表达式

正则表达式是基本的文本处理常识,理解和掌握好grep以及正则表达式对进行文本处理尤为重要

  1. Grep

    根据模式(文本字符和正则表达式的元字符组合而成匹配条件)搜索文本,并将符合模式的文本行显示出来。

1.1grep家族:

 grep:基本正则表达式使用的命令

 egrep:扩展正则表达式使用的命令

 fgrepfast grep):不支持正则表达式,在没有正则表达式的字符串中的使用效率非常高,cup资源消耗少

1.2grep命令格式

 grep  [options] PATTERN [FILE...]

技术分享

 1.2.1option

           -i忽略大小写

          --color:对匹配出来的字符加颜色

技术分享

          -v: 显示没有被模式匹配到的行

技术分享

          -o:只显示被模式匹配到的字符串

技术分享

 

       -E: 使用扩展正则表达式时候使用,grep –E=egrep

           -A #: 显示后面的行

           -B #:显示前面的行

           -C #:显示前后的行

比如:显示、/proc/cpuinfo下面的内容

技术分享

-A:

技术分享

-B:

技术分享

-C:

技术分享

2.正则表达式:REGular EXPression, REGEXP

       BasicREGEXP:基本

       ExtendedREGEXP:扩展

2.1基本正则表达式

2.1.1字符匹配

.: 匹配任意单个字符

[]: 匹配指定范围内的任意单个字符

[^]:匹配指定范围外的任意单个字符

       字符集合:[:digit:], [:lower:], [:upper:], [:punct:],[:space:], [:alpha:], [:alnum:]

技术分享

 a.b

技术分享

[]:

技术分享

[^]:

技术分享

2.1.2匹配次数(贪婪模式):

*: 匹配其前面的字符任意次

技术分享      

 .*: 任意长度的任意字符(任何以a开头和以b结尾的字符)

技术分享

\?: 匹配其前面的字符1次或0

技术分享

\{m,n\}:匹配其前面的字符至少m次,至多n次,当最多次数不限制时n可以省略,m的最小值为0而且不可以省略。

       \{1,\}:至少一次

       \{0,3\}:至多3

技术分享

2.1.3位置锚定:

^: 锚定行首,此字符后面的任意内容必须出现在行首

技术分享

$: 锚定行尾,此字符前面的任意内容必须出现在行尾

技术分享

^$: 空白行

技术分享

表示没有空白行

 

\<\b: 锚定词首,其后面的任意字符必须作为单词首部出现

技术分享

技术分享

技术分享

 

\>\b: 锚定词尾,其前面的任意字符必须作为单词的尾部出现

技术分享

技术分享

精确匹配某个单词

技术分享

技术分享

分组:

\(\)

       \(ab\)*

       后向引用

       \1: 引用第一个左括号以及与之对应的右括号所包括的所有内容

       \2: 引用第二个左括号以及与之对应的右括号所包括的所有内容

       \3: 引用第三个左括号以及与之对应的右括号所包括的所有内容


技术分享

技术分享

技术分享

技术分享


2.2拓展正则表达式

2.2.1字符匹配:(和基本正则表达式一样)

.

[]

[^]

2.2.2次数匹配:

*: (和基本正则表达式一样)

?:(和基本正则表达式少了\

+: 匹配其前面的字符至少1

下图至少匹配一个空白字符

技术分享

{m,n}(和基本正则表达式比较少了\)

2.2.3位置锚定:

^

$

\<

\>

(和基本正则表达式一样)

分组:

():分组

\1, \2, \3, ...\n

或者:

|: or

C|cat: Catcat Ccat(正确)


技术分享

技术分享

技术分享

技术分享


 

 


grep以及正则表达式

标签:linux运维

原文地址:http://langmei.blog.51cto.com/11016382/1726978

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!