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