shell中正则表达式的扩展
awk,Perl,egrep(grep不支持) 等还支持正则表达式扩展出来的一些元字符
1. ?符号
?
匹配?
符号之前的那个字符0次或1次
N?T 表示匹配N字符0次或1次,即INT或INNT
注意:?最多只能匹配1个字符
2. +符号
+
与*
类似,都是匹配其前面的那个字符多次
但*
符号可以匹配0次,而+
符号至少匹配1次
IN+T 表示匹配N1次或者任意多次,INNT INNNNNT等都可以由IN+T匹配,而INT不能由IN+T匹配
3. ()符号和|符号
()
符号通常与|
结合使用,表示一组可选字符的集合
re(a|e|o)d 其中的(a|o|e)表示在a e o中任意选择一个字符,即read、reed、reod都可以由它匹配
而()
其实就等价与[]
re(a|e|o)d 等价于 re[aeo]d
|
符号也可以表示多个正则表达式的“或”关系,基本格式为:
RE1 | RE2 | RE3 |... REn表示正则表达式