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

grep及正则表达式

时间:2015-03-07 06:21:14      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:grep


grep:根据模式,搜索文本,并将符合模式的文本显示出来

pattern:文本字符和正则表达式的元字符组合而成的匹配条件。

单引号:强引用


双引号:弱引用

-i :忽略大小写


--color:匹配到结果加颜色

alias grep=‘grep --color‘

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

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

-E:使用扩展正则表达式

-A n:显示匹配到的行及行后面的n行

-B n:显示匹配到的行及行前面的n行

-C n:显示匹配到的行及行前后面的n行

*:任意长度的任意字符

?:任意单个字符

正则表达式:REGular EXPreesion, REGEXP


元字符:

. :匹配任意单个字符

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

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

[:digit:], [:lower:], [:upper:],[:space:]


匹配次数(贪婪模式):

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

   a , b,ab,aab,  acb, adb, amnb

a*b  : b,  ab,  aab

a.*b  :  ab ,  aab,  acb ,  adb,  amnb

.*:任意长度任意字符


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

\{m,n\}:  匹配其前面的字符至少m次,至多n次

  \{0,3\} 


位置锚定:

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

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

^$ :空白行


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

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

\<root\> 或 \broot\b:精确匹配


分组:

\(\)

  \(ab\)*  :ab作为整体,出现一次或多次

  1\:引用第一个左括号以及与之对应的右括号中匹配到的内容

  2\:


练习:分析/etc/inittab 文件中如下文本中前两行的特征,请写出可以精确到类似现行的模式。

11:1:wait:/etc/rc.d/rc 1

13: 3:wait:/etc/rc.d/rc 3

grep ‘^1\([0-9]\):1\.* 1\$‘ /etc/inittab



扩展正则表达式:


字符匹配:

.

[]

[^]


次数匹配:

*:

?:

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

{m,n}

位置锚定:

^

$

\<

\>


分组:

():分组

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


或者:

| :  or

C|cat   :  匹配C或cat

(C|c)at:  匹配Cat或cat



























grep及正则表达式

标签:grep

原文地址:http://9384502.blog.51cto.com/9374502/1618080

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