linux正则表达式扩展部分

扩展的正则表达式(Extended  Regular  Expressions):

使用的命令为:grep  -E以及egrep

[了解即可]

1)+ 表示重复“一个或一个以上”前面的字符(*是0或多个)

2)? 表示重复“0个或一个”前面的字符(.号有且只有一个)

3)| 表示同时过滤多个字符串

4)() 分组过滤,后向引用

示例:

1、+ 表示重复“一个或一个以上”前面的字符(*是0或多个)

[root@redhat~]#  grep  -Eo  "g+d"  xxx.log

[root@redhat~]#  grep  -Eo  "go+d"  xxx.log

good

god

goood

[root@redhat~]#  grep  -o  "go+d"  xxx.log

[root@redhat~]#  egrep  -o  "go+d"  xxx.log

good

god

goood

2、?表示重复“0个或一个”前面的字符

[root@redhat~]#  cat  xxx.log

good

god

goood

gd

[root@redhat~]#  egrep  "go?d"  xxx.log

god

gd

[root@redhat~]#  egrep  "go.d"  xxx.log

good

3、| 表示同时过滤多个字符串

[root@redhat~]#  egrep  "god|good"  xxx.log

good

god

[root@redhat~]#  egrep  "3306|1521"  /etc/services

mysql               3306/tcp               #  MySQL

mysql               3306/udp              #  MySQL

ncube-lm          1521/tcp               #  nCube  License  Manager

ncube-lm          1521/udp              #  nCube  License  Manager

4、() 分组过滤,后向引用

[root@redhat~]#  grep  -E  "g(la|oo)d"  xxx.log

good

[root@redhat~]#  echo  "glad"  >>xxx.log

[root@redhat~]#  grep  -E  "g(la|oo)d"  xxx.log

good

glad

原文地址:https://www.cnblogs.com/axzq/p/9578084.html