linux正则匹配命令(Linux管线命令egrep还有延伸正则表达式)
承接上一节管道命令grep、sed与正则表达式结合在一起让你玩转Linux?
本节主要介绍grep下延伸正则表达式
延伸正则表达式一般使用者只需要了解基础的正则表达式就够用了,但是呢,某些时候想要简化指令或者那啥(zhuang bi)的话了解延伸正则表达式也是挺好的,延伸表达式适用范围更加广泛.废话少说,举例子才是王道.
模板练习文件还是上一节的express.txt
express.txt模板练习文件
示例一:如果我们要去除空白行和行首是#的行列,按照上一节的做法是:
grep -v '^$' express.txt | grep -v '^#'
其实使用延伸表达式可以更简介
egrep -v '^$|^#' express.txt
grep -v '^$' express.txt | grep -v '^#'
延伸表达式可以通过群组功能"|"来进行一次查询,"|"就是or的意思,这样看来是不是延伸表达式简洁性更强呢,需要注意的是,grep默认仅支持基础正则表达式,egrep支持延伸正则表达式,这一点很多人容易混淆,其实egrep就是grep -E,因为直接去分指令比较好记忆,所以才区分grep,egrep.
通过上联的例子我们可以看到,所谓延伸正则表达式就是多了几个特殊符号而已.
意义:重复“一个或一个以上”的前一个 RE 字符 范例:搜寻 (god) (good) (goood)... 等等的字串。 那个 o 代表“一个以上的 o ”
? 意义:“零个或一个”的前一个 RE 字符 范例:搜寻 (gd) (god) 这两个字串。 那个 o? 代表“空的或 1 个 o ”
| 意义:用或( or )的方式找出数个字串 范例:搜寻 gd 或 good 这两个字串,注意,是“或”!
() 意义:找出“群组”字串 范例:搜寻 (glad) 或 (good) 这两个字串,因为 g 与 d 是重复的,所以, 我就可以将 la 与 oo 列于 ( ) 当中,并以 | 来分隔开来,就可以啦! > egrep -n 'g(la|oo)d' express.txt
() 意义:多个重复群组的判别 范例:将“AqwerqwerqwerC”用 echo 叫出,然后再使用如下的方法搜寻一下! > echo 'AqwerqwerqwerC' | egrep 'A(qwer) C' 意思是说,我要找开头是 A 结尾是 C ,中间有一个以上的 "qwer" 字串的意思
以上就是本节的主要内容,有异议的地方评论区还望多多指教,如果感觉写的还行,可以关注一波,点赞一波,多谢各位看官
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com