9.1正则介绍_grep上
9.2grep中
9.3grep下
扩展
把一个目录下,过滤所有*.PHP文档中含有eval的行
grep-r--include="*.PHP"'eval'/data/
#9.1正则介绍grep上
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170822/222929890.png?imageslim)
```
[root@aminglinux-01~]#ls
1111_heard.txt1.txt1.txt.bak2.txt3.txtaminglinuxbb.txttest
1231_sorft.txt1.txt~2342.txt.bak4.txtanaconda-ks.cfg.1biji.txt
[root@aminglinux-01~]#mkdirgrep
[root@aminglinux-01~]#cdgrep/
[root@aminglinux-01grep]#cp/etc/passwd.
[root@aminglinux-01grep]#ls
passwd
[root@aminglinux-01grep]#pwd
/root/grep
[root@aminglinux-01grep]#ls
passwd
[root@aminglinux-01grep]#grep'nologin'passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
user4:x:1006:1005::/home/aming111:/sbin/nologin
saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#whichgrep
aliasgrep='grep--color=auto'
/usr/bin/grep
[root@aminglinux-01grep]#
```
-grep-c查看行数
```
[root@aminglinux-01grep]#grep-c'nologin'passwd
19
[root@aminglinux-01grep]#
```
-grep-n查看行号在最左侧显示
```
[root@aminglinux-01grep]#grep-n'nologin'passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
15:systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
16:dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
17:polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
18:tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
19:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
20:sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
21:chrony:x:997:995::/var/lib/chrony:/sbin/nologin
26:user4:x:1006:1005::/home/aming111:/sbin/nologin
29:saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#
```
-grep-i不区分大小写,先vimpasswd打开把第一行nologin改成大写NOLOGIN
```
[root@aminglinux-01grep]#vimpasswd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
--插入--
[root@aminglinux-01grep]#vimpasswd
```
-grep-ni和grep-n的区别,会把第三行忽略,grep-ni就不会区分大小写
```
[root@aminglinux-01grep]#grep-n'nologin'passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@aminglinux-01grep]#grep-ni'nologin'passwd
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
```
-grep-v取反,所有不带nologin的行grep-vni看下
```
[root@aminglinux-01grep]#grep-vni'nologin'passwd
1:root:x:0:0:root:/root:/bin/bash
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
22:aming:x:1000:1005::/home/aming:/bin/bash
23:user1:x:1001:1001::/home/user1:/bin/bash
24:user2:x:1002:1002::/home/user2:/bin/bash
25:user3:x:1004:1005::/home/user3:/bin/bash
27:user5:x:1007:1007::/home/user5:/bin/bash
28:user6:x:1008:1010::/home/user6:/bin/bash
[root@aminglinux-01grep]#
```
--r遍历所有的字目录
```
[root@aminglinux-01grep]#grep-r'root'/etc/
/etc/pki/ca-trust/ca-legacy.conf:#TheupstreamMozilla.orgprojecttestsallchangestotherootCA
/etc/pki/ca-trust/ca-legacy.conf:#totemporarilykeepcertain(legacy)rootCAcertificatestrusted,/etc/pki/ca-trust/ca-legacy.conf:#ItmaykeeprootCAcertificateastrusted,whichtheupstream
/etc/pki/ca-trust/extracted/README:rootCAcertificates.
/etc/pki/ca-trust/extracted/java/README:rootCAcertificates.
...
```
-如果不加r,先把etc目录下的root过滤出来放到tmp目录下的grep.log下,再去grep.log下找带passwd的
```
[root@aminglinux-01grep]#grep'root'/etc/
grep:/etc/:是一个目录
[root@aminglinux-01grep]#grep'root'/etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@aminglinux-01grep]#
[root@aminglinux-01grep]#grep-r'root'/etc/>/tmp/grep.log
[root@aminglinux-01grep]#greppasswd/tmp/grep.log
/etc/passwd:root:x:0:0:root:/root:/bin/bash
/etc/passwd:operator:x:11:0:operator:/root:/sbin/nologin
/etc/passwd-:root:x:0:0:root:/root:/bin/bash
/etc/passwd-:operator:x:11:0:operator:/root:/sbin/nologin
/etc/postfix/main.cf:#thesystempasswdfileinthechrootjailisjustnotpractical.
[root@aminglinux-01grep]#
```
--A后面跟数字,表示过滤出符合要求的行以及下面n行
-下面过滤出passwd文件里的带有root的行,以及下面的2行
```
[root@aminglinux-01grep]#grep-nA2'root'passwd
1:root:x:0:0:root:/root:/bin/bash
2-bin:x:1:1:bin:/bin:/sbin/nologin
3-daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
--
10:operator:x:11:0:operator:/root:/sbin/nologin
11-games:x:12:100:games:/usr/games:/sbin/nologin
12-ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
[root@aminglinux-01grep]#
```
--B后面跟数字,表示过滤出符合要求的行以及上面n行
-下面过滤出paswd文件里的带有root的行,以及上面的3行
```
[root@aminglinux-01grep]#grep-nB3'root'passwd
1:root:x:0:0:root:/root:/bin/bash
--
7-shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8-halt:x:7:0:halt:/sbin:/sbin/halt
9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
[root@aminglinux-01grep]#
```
--C后面跟数字,表示过滤出符合要求的行以及上下n行
-下面过滤出passwd文件里的带有root的行,以及上下2行
```
[root@aminglinux-01grep]#grep-nC2'root'passwd
1:root:x:0:0:root:/root:/bin/bash
2-bin:x:1:1:bin:/bin:/sbin/nologin
3-daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
--
8-halt:x:7:0:halt:/sbin:/sbin/halt
9-mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11-games:x:12:100:games:/usr/games:/sbin/nologin
12-ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
[root@aminglinux-01grep]#
```
#9.2grep中
![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170822/230138784.png?imageslim)
-grep'[0-9]'passwd过滤出带有数字0-9的
```
[root@aminglinux-01grep]#grep'[0-9]'passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
aming:x:1000:1005::/home/aming:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/aming111:/sbin/nologin
user5:x:1007:1007::/home/user5:/bin/bash
user6:x:1008:1010::/home/user6:/bin/bash
saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#
```
-grep-vn'[0-9]'/etc/inittba只要带数字的行都不要
```
[root@aminglinux-01grep]#grep-vn'[0-9]'/etc/inittab
1:#inittabisnolongerusedwhenusingsystemd.
2:#
3:#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
4:#
5:#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
6:#
7:#systemduses'targets'insteadofrunlevels.Bydefault,therearetwomaintargets:
8:#
11:#
12:#Toviewcurrentdefaulttarget,run:
13:#systemctlget-default
14:#
15:#Tosetadefaulttarget,run:
16:#systemctlset-defaultTARGET.target
17:#
[root@aminglinux-01grep]#
```
-[]vim看下是9行有个3,10行有个5
```
1#inittabisnolongerusedwhenusingsystemd.
2#
3#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
4#
5#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
6#
7#systemduses'targets'insteadofrunlevels.Bydefault,therearetwomaintargets:
8#
9#multi-user.target:analogoustorunlevel3
10#graphical.target:analogoustorunlevel5
11#
12#Toviewcurrentdefaulttarget,run:
13#systemctlget-default
14#
15#Tosetadefaulttarget,run:
16#systemctlset-defaultTARGET.target
17#
~
~
~
:setnu
```
-grep-n'^#'inittab过滤以#开头的行
```
[root@aminglinux-01grep]#grep-n'^#'/etc/inittab
1:#inittabisnolongerusedwhenusingsystemd.
2:#
3:#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
4:#
5:#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
6:#
7:#systemduses'targets'insteadofrunlevels.Bydefault,therearetwomaintargets:
8:#
9:#multi-user.target:analogoustorunlevel3
10:#graphical.target:analogoustorunlevel5
11:#
12:#Toviewcurrentdefaulttarget,run:
16:#systemctlset-defaultTARGET.target
17:#
```
-先拷贝一下这个/etc/inittab文件到当前目录下来,不能直接修改文件/etc/inittab系统配置文件,改错了,会会容易导致系统启动不了,出问题
```
[root@aminglinux-01grep]#cp/etc/inittab./
[root@aminglinux-01grep]#viminittab
1#inittabisnolongerusedwhenusingsystemd.
2#
3#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
4#
5#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
6#
7#systemduses'targets'insteadofrunlevels.Bydefault,therearetwomaintargets:
8#
9#multi-user.target:analogoustorunlevel3
10#graphical.target:analogoustorunlevel5
11ldldldldl
12#
13#Toviewcurrentdefaulttarget,run:
14#systemctlget-default
15#
16#Tosetadefaulttarget,run:
17#systemctlset-defaultTARGET.target
18#
~
:setnu
```
-在11行随便加了点东西,再来grep-n'^#'inittab,找出以#开头的行找出来,发现第11行没有了
```
[root@aminglinux-01grep]#grep-n'^#'inittab
1:#inittabisnolongerusedwhenusingsystemd.
2:#
3:#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
4:#
5:#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
6:#
7:#systemduses'targets'insteadofrunlevels.Bydefault,therearetwomaintargets:
8:#
9:#multi-user.target:analogoustorunlevel3
10:#graphical.target:analogoustorunlevel5
12:#
13:#Toviewcurrentdefaulttarget,run:
14:#systemctlget-default
15:#
16:#Tosetadefaulttarget,run:
17:#systemctlset-defaultTARGET.target
18:#
[root@aminglinux-01grep]#
```
-grep-nv'^#'inittab把不以#开头的行找出来
```
[root@aminglinux-01grep]#grep-nv'^#'inittab
11:ldldldldl
[root@aminglinux-01grep]#
```
-再进入viminittab里面修改下文件
```
[root@aminglinux-01grep]#viminittab
#inittabisnolongerusedwhenusingsystemd.
#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
#
#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
#
#systemduses'targets'insteadofrunlevels.Bydefault,therearetwomaintargets:
&*&*&*&*
#multi-user.target:analogoustorunlevel3
aaaaaaaaaaaaa
#graphical.target:analogoustorunlevel5
ldldldldl
#
#Toviewcurrentdefaulttarget,run:
#systemctlget-default
11111111111
#Tosetadefaulttarget,run:
#systemctlset-defaultTARGET.target
#
:wq
[root@aminglinux-01grep]#viminittab
[root@aminglinux-01grep]#pwd
/root/grep
[root@aminglinux-01grep]#
```
-再过滤下
```
[root@aminglinux-01grep]#grep-v'^#'inittab
&*&*&*&*
aaaaaaaaaaaaa
ldldldldl
11111111111
[root@aminglinux-01grep]#
```
-grep'[^0-9]'inittab表示过滤出非数字的带有一个字符的地方,在[^0-9]表示选非0-9
```
[root@aminglinux-01grep]#grep'[^0-9]'inittab
#inittabisnolongerusedwhenusingsystemd.
#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
#
#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
#
#systemduses'targets'insteadofrunlevels.Bydefault,run:
#systemctlget-default
#Tosetadefaulttarget,run:
#systemctlset-defaultTARGET.target
#
[root@aminglinux-01grep]#
```
-再编辑下inittab文件
```
[root@aminglinux-01grep]#viminittab
#inittabisnolongerusedwhenusingsystemd.
#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
111111111aaa23333333
#
#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
#
#systemduses'targets'insteadofrunlevels.Bydefault,run:
#systemctlset-defaultTARGET.target
```
-以非数字的一个字符grep'[^0-9]'inittab
```
[root@aminglinux-01grep]#grep'[^0-9]'inittab
#inittabisnolongerusedwhenusingsystemd.
#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
111111111aaa23333333
#
#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
#
#systemduses'targets'insteadofrunlevels.Bydefault,run:
#systemctlset-defaultTARGET.target
#
[root@aminglinux-01grep]#
```
-符合非数字的行开头的行grep'^[^0-9]'inittab
```
[root@aminglinux-01grep]#grep'^[^0-9]'inittab
#inittabisnolongerusedwhenusingsystemd.
#ADDINGCONFIGURATIONHEREWILLHAVENOEFFECTONYOURSYSTEM.
#
#Ctrl-Alt-Deleteishandledby/usr/lib/systemd/system/ctrl-alt-del.target
#
#systemduses'targets'insteadofrunlevels.Bydefault,run:
#systemctlset-defaultTARGET.target
#
```
-符合数字开头的grep-vn'^[^0-9]'inittab
```
[root@aminglinux-01grep]#grep-vn'^[^0-9]'inittab
3:111111111aaa23333333
16:11111111111
[root@aminglinux-01grep]#
```
#9.3grep下
-grep'r.o'passwd.代表任意一个字符
```
[root@aminglinux-01grep]#grep'r.o'passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@aminglinux-01grep]#
```
1.随便在passwd文件里编辑一些
```
[root@aminglinux-01grep]#vimpasswd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
dskdklldkdddkdkrao:222
daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
222222:r>o:ldkdkdkd
```
2.再看下
```
[root@aminglinux-01grep]#grep'r.o'passwd
root:x:0:0:root:/root:/bin/bash
dskdklldkdddkdkrao:222
222222:r>o:ldkdkdkd
operator:x:11:0:operator:/root:/sbin/nologin
[root@aminglinux-01grep]#
```
4..也可以匹配到
```
[root@aminglinux-01grep]#vimpasswd
222222:r.o:ldkdkdkd
[root@aminglinux-01grep]#grep'r.o'passwd
root:x:0:0:root:/root:/bin/bash
dskdklldkdddkdkrao:222
222222:r.o:ldkdkdkd
operator:x:11:0:operator:/root:/sbin/nologin
[root@aminglinux-01grep]#
```
-grep'o*o'passwd*表示*左边的字符重复0-n次n表示随意的数字
```
[root@aminglinux-01grep]#grep'o*o'passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
dskdklldkdddkdkrao:222
daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
222222:r.o:ldkdkdkd
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
aming:x:1000:1005::/home/aming:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/aming111:/sbin/nologin
user5:x:1007:1007::/home/user5:/bin/bash
user6:x:1008:1010::/home/user6:/bin/bash
saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#
```
-改下文件passwd增加3个o,4个o
```
[root@aminglinux-01grep]#vimpasswd
user5:x:1007:1007::/hoooome/user5:/bin/bash
user6:x:1008:1010::/hooome/user6:/bin/bash
[root@aminglinux-01grep]#grep'o*o'passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
dskdklldkdddkdkrao:222
daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
222222:r.o:ldkdkdkd
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
aming:x:1000:1005::/home/aming:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/aming111:/sbin/nologin
user5:x:1007:1007::/hoooome/user5:/bin/bash
user6:x:1008:1010::/hooome/user6:/bin/bash
saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#
```
-.*表示任意个任意字符所有的都匹配
```
[root@aminglinux-01grep]#grep'.*'passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
dskdklldkdddkdkrao:222
daemon:x:2:2:daemon:/sbin:/sbin/NOLOGIN
222222:r.o:ldkdkdkd
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
aming:x:1000:1005::/home/aming:/bin/bash
user1:x:1001:1001::/home/user1:/bin/bash
user2:x:1002:1002::/home/user2:/bin/bash
user3:x:1004:1005::/home/user3:/bin/bash
user4:x:1006:1005::/home/aming111:/sbin/nologin
user5:x:1007:1007::/hoooome/user5:/bin/bash
user6:x:1008:1010::/hooome/user6:/bin/bash
saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#grep'aming.*bash'passwd
aming:x:1000:1005::/home/aming:/bin/bash
[root@aminglinux-01grep]#
```
-grep'o\{2\}'passwd表示匹配o出现俩次的字符o{2}表示前面字符o的重复范围位o重复2次
```
[root@aminglinux-01grep]#grep'o{2}'passwd
[root@aminglinux-01grep]#grep'o\{2\}'passwd
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
user5:x:1007:1007::/hoooome/user5:/bin/bash
user6:x:1008:1010::/hooome/user6:/bin/bash
[root@aminglinux-01grep]#
```
-如果觉得过o\{2\}太麻烦可以使用grep-E或者egrep
```
[root@aminglinux-01grep]#grep-E'o{2}'passwd
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
user5:x:1007:1007::/hoooome/user5:/bin/bash
user6:x:1008:1010::/hooome/user6:/bin/bash
[root@aminglinux-01grep]#egrep'o{2}'passwd
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
user5:x:1007:1007::/hoooome/user5:/bin/bash
user6:x:1008:1010::/hooome/user6:/bin/bash
[root@aminglinux-01grep]#
```
-grep-E'(oo){2}'passwd表示一个组合出现2次oo的
```
[root@aminglinux-01grep]#grep-E'(oo){2}'passwd
user5:x:1007:1007::/hoooome/user5:/bin/bash
[root@aminglinux-01grep]#
```
-egrep不需要加脱义或者grep-E
-egrep'o+o'passwd+表示1次或者一次以上出现前面的字符,即+号前面出现一次o或者多次o
```
[root@aminglinux-01grep]#egrep'o+o'passwd
root:x:0:0:root:/root:/bin/bash
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
user5:x:1007:1007::/hoooome/user5:/bin/bash
user6:x:1008:1010::/hooome/user6:/bin/bash
[root@aminglinux-01grep]#
```
-egrep'o+b'passwd表示+前面可以出现o一次以上egrep'o+t'passwd
```
[root@aminglinux-01grep]#egrep'o+b'passwd
nobody:x:99:99:Nobody:/:/sbin/nologin
[root@aminglinux-01grep]#
[root@aminglinux-01grep]#egrep'o+t'passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@aminglinux-01grep]#
```
-egrep'o?t'passwd?表示0次或者1次出现前面的字符这里是0次或者1次出现o
```
[root@aminglinux-01grep]#egrep'o?t'passwd
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#
```
-egrep'o?1o'passwd这个表示?前面出现0次或者1次o
-先编辑下文件vimpasswd
```
[root@aminglinux-01grep]#vimpasswd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:1o1:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/no1ologin
[root@aminglinux-01grep]#vimpasswd
[root@aminglinux-01grep]#egrep'o?1o'passwd
operator:x:1o1:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTPUser:/var/ftp:/sbin/no1ologin
[root@aminglinux-01grep]#egrep'o?1o'passwd
```
-grep-E'root|nologin'passwd|在这里表示或者的意思
```
[root@aminglinux-01grep]#grep-E'root|nologin'passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:1o1:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
systemd-network:x:192:192:systemdNetworkManagement:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
polkitd:x:998:996:Userforpolkitd:/:/sbin/nologin
tss:x:59:59:AccountusedbythetrouserspackagetosandBoxthetcsddaemon:/dev/null:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separatedSSH:/var/empty/sshd:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
user4:x:1006:1005::/home/aming111:/sbin/nologin
saslauth:x:996:76:Saslauthduser:/run/saslauthd:/sbin/nologin
[root@aminglinux-01grep]#
```
-grep-Ei'root|bus|997'passwd-E因为后面有符号|-i是不区分大小写
```
[root@aminglinux-01grep]#grep-Ei'root|bus|997'passwd
root:x:0:0:root:/root:/bin/bash
operator:x:1o1:0:operator:/root:/sbin/nologin
systemd-bus-proxy:x:999:997:systemdBusProxy:/:/sbin/nologin
dbus:x:81:81:Systemmessagebus:/:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
[root@aminglinux-01grep]#
```
原文链接:https://www.f2er.com/regex/358009.html