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

8_Shell语言———扩展正则表达式和egrep、fgrep命令

时间:2014-05-09 07:01:10      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:linux egrep fgrep

   egrep命令等同于 grep命令加上 -E选项,它支持扩展的正则表达式。

   扩展正则表达式和基本正则表达式类似,不同之处在于增加了一些新功能,部分元字符的用法也略有不同:

       .:任意单个字符

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

       [^]:取反

       *:匹配其前的字符0次、1次或多次

       ?0次或1

       {m,n}:至少m次,至多n

       \<:词首锚定

       \>:词尾锚定

       ^:行首锚定

       $:行尾锚定

———————————上述部分和基本正则表达式一致————————

+:匹配其前的字符至少一次,等同于\{1,\}

bubuko.com,布布扣

注意:使用grep -E egrep时,+前面不能有\,但使用grep时,需要带上\,且基本正则表达式不一定支持+

bubuko.com,布布扣


|:或者,如a|b

如查找 /proc/meminfo 文件中含有 sS的行:

# grep -E s|S /proc/meminfo

# egrep s|S /proc/meminfo

bubuko.com,布布扣

():分组,支持引用 \1\2, 注意小括号前面不需要再加\进行转义了

^锚定行首符号若用在上述例子中会导致歧义

# egrep ^s|S /proc/meminfo      // 这里不表示查找以sS开头的行,

// 而是表示查找以s开头,或者是查找含有S的行

bubuko.com,布布扣

若要用^锚定行首,来查找以sS开头的行,可以使用()进行分组:

# egrep ^(s|S) /proc/meminfo

bubuko.com,布布扣

再举一个例子:

# egrep c|Cat egrep.txt// 不表示查找含有catCat,而是查找含有cCat

# egrep (c|C)at egrep.txt


bubuko.com,布布扣


fgrep命令也是grep命令的一种扩展形式,它不进行模式匹配,所有的元字符都当做普通字符来用,因此搜索速度非常快。

bubuko.com,布布扣


本文出自 “重剑无锋 大巧不工” 博客,请务必保留此出处http://wuyelan.blog.51cto.com/6118147/1408652

8_Shell语言———扩展正则表达式和egrep、fgrep命令,布布扣,bubuko.com

8_Shell语言———扩展正则表达式和egrep、fgrep命令

标签:linux egrep fgrep

原文地址:http://wuyelan.blog.51cto.com/6118147/1408652

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