grep -E == egrep
[root@wangshaojun ~]# grep --color 'r?o' 1.txt == egrep --color 'r?o' 1.txt ^C
[root@wangshaojun ~]# egrep --color 'r?o' 1.txt
root:x:0:0:root:/root:/bin/bash //roo中ro匹配一次 o匹配一次
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
.......
特殊符号‘+’ 表示1个或多个+号前面的字符
[root@wangshaojun ~]# egrep --color 'r+o' 1.txt
[root@wangshaojun ~]# grep --color -E 'r+o' 1.txt
[root@wangshaojun ~]# grep --color 'r+o' 1.txt
root:x:0:0:root:/root:/bin/bash
syrrrrrrrrronc:x:5:0:sync:/sbin:/bin/sync
halt:x:7:rro0:halt:/sbin:/sbin/halt
operator:x:11:0:operator:/root:/sbin/nologin
.....
////////////////////////////////////////////////////////////////////////////////////
总结特殊符号
. 任意一个字符
* *号前面的字符0个或多个
.* 任意个任意字符
? 0或1个?前面的字符
+ 1或多个+或前面的字符
《?+需要用egrep》
///////////////////////////////////////////////////////////////////////////////////
表示或者 包含root 或者nologin都可以匹配到
[root@wangshaojun ~]# egrep --color 'root|nologin' 1.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
.....
表示并且 包含‘root’并且包含‘nologin’的
[root@wangshaojun ~]# grep --color 'root' 1.txt |grep --color 'nologin'
operator:x:11:0:operator:/root:/sbin/nologin
表示整体
[root@wangshaojun ~]# egrep --color '(rr)+' 1.txt ///表示出现1次或多次rr
syrrrrrrrrronc:x:5:0:sync:/sbin:/bin/sync
halt:x:7:rro0:halt:/sbin:/sbin/halt
gopher:x:1rrrro3:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FrrroTP User:/var/ftp:/sbin/nologin
.....
给整体指定一个范围
[root@wangshaojun ~]# egrep --color '(rr){1,3}' 1.txt
syrrrrrrrrronc:x:5:0:sync:/sbin:/bin/sync
halt:x:7:rro0:halt:/sbin:/sbin/halt
gopher:x:1rrrro3:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FrrroTP User:/var/ftp:/sbin/nologin
给整体指定一个倍数
[root@wangshaojun ~]# egrep --color '(rr){3}' 1.txt
syrrrrrrrrronc:x:5:0:sync:/sbin:/bin/sync
///////////////////////////////////////////////////////////////////////////////////
总结:? + () {} 需要用egrep grep -E grep