Grep家族(上)

Unix grep家族包括grep,egrepfgrepGrep的命令在文件中搜索正则表达式,并打印所有包含这些表达式的行。Egrepfgrep命令只跟grep有很小的不同。Egrepgrep的扩展,支持更多的RE元字符。Fgrep就是fixed grep 或者 fast grep,它们把所有的字母都看作单词。这就是说,正则表达式的元字符不再特殊――他们只表示其自身的字母意思。


Grep的意思是“全面搜索正则表达式并把找到的行打印出来(global search regular expression(RE) and print out the line)。

Grep的正则表达式元字符集(基本集)

元字符

功能

例子

匹配什么

^

锚定行的开始

/^love/

匹配所有以love开头的行

$

锚定行的结束

/love$/

匹配所有以love 结束的行

.

匹配一个字符

/l..e/

匹配这样的行,这些行包含这样的字符:第一个字符是l,紧跟着两个字符,然后是e

*

代表0个或多个先前字符

/*love/

匹配所有这样的行,有0个或多个空格,空格后跟着love

[]

匹配字符组中的一个字符

/[Ll]ove/

匹配所有包含love或者Love的行

[^]

匹配一个不在范围内的字符

/[^A-Z]ove/

<

锚定单词的开始

匹配所有这样的行,这些行包含以love开头的单词(vigrep支持这个功能)

>

锚定单词的结束

Love>

匹配所有这样的行,这些行包含以love结束的单词(vigrep支持这个功能)

(..)

标记后面用到的匹配字符

/(love)able1rs/

最多可以使用9个标签。第一个标签是模板最左边的部分。在本例子中,模板love保存的标签为1,后面的1指得就是love;本例子搜索的是这样的行,这些行包含这样的字符,在Loveabel后面跟着lovers

x{m}

M次复制字符x

x{m,}

至少m次复制字符x

x{m,n}

至少m次,至多n次复制字x

w

文字和数字字符,[A-Za-z0-9]

Lw*e

匹配一个l字符,紧跟着0个或多个文字或数字字符,然后是e

W

同上

b

单词分界线

bloveb

仅仅匹配单词love

扩展集(用于egrepgrep-E

+

匹配一个或者多个先前字符

[a-z]+ove

匹配一个或者多个小写字符且后面是ove的,

?

匹配0个或者多个先前字符

Lo?ve

P匹配l后面有一个或者没有o,然后是ve

a|b|c

匹配abc

Love|hate

匹配lovehate其中一个

()

字符组

Love(able|rs)(ov)+

匹配loveablelovers,匹配一个或多个ov

(…)(…)12

标记匹配字符串

(love)ing

标签标记出寄存器的一部分,并稍后替换模板。该模板叫做1,并可反复引用。在表达式中最多可以使用9个这样的标签。例如,模板love被保存在寄存器1中并稍后替换标签叫做1

x{m}

重复字符X,m次,至少m,或者m次和n次之间。

x{m,}

x{m,n}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/312079/viewspace-245420/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/312079/viewspace-245420/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值