【2018.04.29学习笔记】【sed练习题】

sed练习题

做题最好在草稿纸上分析推演,根据分析在纸上预先写好大概的正则表达式代码,这样能大大提高准确率

passwdtest 文件的内容是:

[root@lgs-01 sed]# cat passwdtest 
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:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
lgs:x:1008:1000::/home/lgs:/bin/bash
abc:x:1001:1000::/home/abc:/bin/bash
12:22:55
587:1
12:21
2:2:1:fsfs:root:/bin/:/user
342:x:3d:fafa:toor:/user:/bin
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:t55abc
##:#34#:bb:bb:bb:%pp^:$!#
#234#:vv:vv:vv:vv:ds:@user#

1、把/etc/passwd 复制到/root/awk/passwdtest,用sed打印所有行

答案: sed -n '1,$ p' passwdtest
[root@lgs-01 sed]#  sed -n '1,$ p' passwdtest
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:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
lgs:x:1008:1000::/home/lgs:/bin/bash
abc:x:1001:1000::/home/abc:/bin/bash
12:22:55
587:1
12:21
2:2:1:fsfs:root:/bin/:/user
342:x:3d:fafa:toor:/user:/bin
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:t55abc
##:#34#:bb:bb:bb:%pp^:$!#
#234#:vv:vv:vv:vv:ds:@user#

2、打印passwdtest的3到10行

答案:sed -n '3,10 p' passwdtest
[root@lgs-01 sed]# sed -n '3,10 p' passwdtest
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

3、打印passwdtest 中包含 ‘root’ 的行

答案: sed -n '/root/ p' passwdtest
[root@lgs-01 sed]# sed -n '/root/ p' passwdtest
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
2:2:1:fsfs:root:/bin/:/user

4、删除passwdtest 的15行以及以后所有行

答案:sed '15,$ d' passwdtest 
[root@lgs-01 sed]# sed '15,$ d' passwdtest
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:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

5、删除passwdtest中包含 ‘bash’ 的行

答案:sed '/bash/ d' passwdtest 
[root@lgs-01 sed]# sed '/bash/ d' passwdtest 
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:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
12:22:55
587:1
12:21
2:2:1:fsfs:root:/bin/:/user
342:x:3d:fafa:toor:/user:/bin
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:t55abc
##:#34#:bb:bb:bb:%pp^:$!#
#234#:vv:vv:vv:vv:ds:@user#

6、替换passwdtest 中 ‘root’ 为 ‘toor’

答案:sed 's/root/toor/ g' passwdtest 
[root@lgs-01 sed]# sed 's/root/toor/ g' passwdtest 
toor:x:0:0:toor:/toor:/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:/toor:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
lgs:x:1008:1000::/home/lgs:/bin/bash
abc:x:1001:1000::/home/abc:/bin/bash
12:22:55
587:1
12:21
2:2:1:fsfs:toor:/bin/:/user
342:x:3d:fafa:toor:/user:/bin
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:t55abc
##:#34#:bb:bb:bb:%pp^:$!#
#234#:vv:vv:vv:vv:ds:@user#

7、替换passwdtest中 ‘/sbin/nologin’ 为 ‘/bin/login’

答案:sed  's/\/sbin\/nologin/\/bin\/login/ g' passwdtest 
[root@lgs-01 sed]# sed  's/\/sbin\/nologin/\/bin\/login/ g' passwdtest
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/login
daemon:x:2:2:daemon:/sbin:/bin/login
adm:x:3:4:adm:/var/adm:/bin/login
lp:x:4:7:lp:/var/spool/lpd:/bin/login
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:/bin/login
operator:x:11:0:operator:/root:/bin/login
games:x:12:100:games:/usr/games:/bin/login
ftp:x:14:50:FTP User:/var/ftp:/bin/login
nobody:x:99:99:Nobody:/:/bin/login
systemd-network:x:192:192:systemd Network Management:/:/bin/login
dbus:x:81:81:System message bus:/:/bin/login
polkitd:x:999:997:User for polkitd:/:/bin/login
postfix:x:89:89::/var/spool/postfix:/bin/login
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/bin/login
chrony:x:998:996::/var/lib/chrony:/bin/login
lgs:x:1008:1000::/home/lgs:/bin/bash
abc:x:1001:1000::/home/abc:/bin/bash
12:22:55
587:1
12:21
2:2:1:fsfs:root:/bin/:/user
342:x:3d:fafa:toor:/user:/bin
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:t55abc
##:#34#:bb:bb:bb:%pp^:$!#
#234#:vv:vv:vv:vv:ds:@user#

8、删除passwdtest中5到10行中所有的数字

答案: sed '5,10s/[0-9]//g' passwdtest 
[root@lgs-01 sed]#  sed '5,10s/[0-9]//g' passwdtest 
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:::lp:/var/spool/lpd:/sbin/nologin
sync:x:::sync:/sbin:/bin/sync
shutdown:x:::shutdown:/sbin:/sbin/shutdown
halt:x:::halt:/sbin:/sbin/halt
mail:x:::mail:/var/spool/mail:/sbin/nologin
operator:x:::operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
lgs:x:1008:1000::/home/lgs:/bin/bash
abc:x:1001:1000::/home/abc:/bin/bash
12:22:55
587:1
12:21
2:2:1:fsfs:root:/bin/:/user
342:x:3d:fafa:toor:/user:/bin
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:t55abc
##:#34#:bb:bb:bb:%pp^:$!#
#234#:vv:vv:vv:vv:ds:@user#

9、删除passwdtest中所有特殊字符(除了数字以及大小写字母)

答案:sed 's/[^0-9a-zA-Z]//g' passwdtest
[root@lgs-01 sed]# sed 's/[^0-9a-zA-Z]//g' passwdtest
rootx00rootrootbinbash
binx11binbinsbinnologin
daemonx22daemonsbinsbinnologin
admx34admvaradmsbinnologin
lpx47lpvarspoollpdsbinnologin
syncx50syncsbinbinsync
shutdownx60shutdownsbinsbinshutdown
haltx70haltsbinsbinhalt
mailx812mailvarspoolmailsbinnologin
operatorx110operatorrootsbinnologin
gamesx12100gamesusrgamessbinnologin
ftpx1450FTPUservarftpsbinnologin
nobodyx9999Nobodysbinnologin
systemdnetworkx192192systemdNetworkManagementsbinnologin
dbusx8181Systemmessagebussbinnologin
polkitdx999997Userforpolkitdsbinnologin
postfixx8989varspoolpostfixsbinnologin
sshdx7474PrivilegeseparatedSSHvaremptysshdsbinnologin
chronyx998996varlibchronysbinnologin
lgsx10081000homelgsbinbash
abcx10011000homeabcbinbash
122255
5871
1221
221fsfsrootbinuser
342x3dfafatooruserbin
xxxxxxxxxxxx34
rrrrrrrrrrrrt55abc
34bbbbbbpp
234vvvvvvvvdsuser

10、把passwdtest中第一个单词和最后一个单词调换位置

答案:sed -r 's/([^a-zA-Z]*)([a-zA-Z]+)([^a-zA-Z]+)(.*)([^a-zA-Z]+)([a-zA-Z]+)([^a-zA-Z]*)/\1\6\3\4\5\2\7/' passwdtest 
[root@lgs-01 sed]# sed -r 's/([^a-zA-Z]*)([a-zA-Z]+)([^a-zA-Z]+)(.*)([^a-zA-Z]+)([a-zA-Z]+)([^a-zA-Z]*)/\1\6\3\4\5\2\7/' passwdtest 
bash:x:0:0:root:/root:/bin/root
nologin:x:1:1:bin:/bin:/sbin/bin
nologin:x:2:2:daemon:/sbin:/sbin/daemon
nologin:x:3:4:adm:/var/adm:/sbin/adm
nologin:x:4:7:lp:/var/spool/lpd:/sbin/lp
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
nologin:x:8:12:mail:/var/spool/mail:/sbin/mail
nologin:x:11:0:operator:/root:/sbin/operator
nologin:x:12:100:games:/usr/games:/sbin/games
nologin:x:14:50:FTP User:/var/ftp:/sbin/ftp
nologin:x:99:99:Nobody:/:/sbin/nobody
nologin-network:x:192:192:systemd Network Management:/:/sbin/systemd
nologin:x:81:81:System message bus:/:/sbin/dbus
nologin:x:999:997:User for polkitd:/:/sbin/polkitd
nologin:x:89:89::/var/spool/postfix:/sbin/postfix
nologin:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/sshd
nologin:x:998:996::/var/lib/chrony:/sbin/chrony
bash:x:1008:1000::/home/lgs:/bin/lgs
bash:x:1001:1000::/home/abc:/bin/abc
12:22:55
587:1
12:21
2:2:1:user:root:/bin/:/fsfs
342:bin:3d:fafa:toor:/user:/x
xx:xx:xx:xx:xx:xx:34
abc:rr:rr:rr:rr:rr:t55rr
##:#34#:pp:bb:bb:%bb^:$!#
#234#:user:vv:vv:vv:ds:@vv#

11、把passwdtest中出现的第一个 数字和最后一个单词替换位置

答案:sed -r 's/([^0-9]*)([0-9]+)([^0-9]*)(.*)([^a-zA-Z]+)([a-zA-Z]+)([^a-zA-Z]*)/\1\6\3\4\5\2\7/' passwdtest
[root@lgs-01 sed]# sed -r 's/([^0-9]*)([0-9]+)([^0-9]*)(.*)([^a-zA-Z]+)([a-zA-Z]+)([^a-zA-Z]*)/\1\6\3\4\5\2\7/' passwdtest
root:x:bash:0:root:/root:/bin/0
bin:x:nologin:1:bin:/bin:/sbin/1
daemon:x:nologin:2:daemon:/sbin:/sbin/2
adm:x:nologin:4:adm:/var/adm:/sbin/3
lp:x:nologin:7:lp:/var/spool/lpd:/sbin/4
sync:x:sync:0:sync:/sbin:/bin/5
shutdown:x:shutdown:0:shutdown:/sbin:/sbin/6
halt:x:halt:0:halt:/sbin:/sbin/7
mail:x:nologin:12:mail:/var/spool/mail:/sbin/8
operator:x:nologin:0:operator:/root:/sbin/11
games:x:nologin:100:games:/usr/games:/sbin/12
ftp:x:nologin:50:FTP User:/var/ftp:/sbin/14
nobody:x:nologin:99:Nobody:/:/sbin/99
systemd-network:x:nologin:192:systemd Network Management:/:/sbin/192
dbus:x:nologin:81:System message bus:/:/sbin/81
polkitd:x:nologin:997:User for polkitd:/:/sbin/999
postfix:x:nologin:89::/var/spool/postfix:/sbin/89
sshd:x:nologin:74:Privilege-separated SSH:/var/empty/sshd:/sbin/74
chrony:x:nologin:996::/var/lib/chrony:/sbin/998
lgs:x:bash:1000::/home/lgs:/bin/1008
abc:x:bash:1000::/home/abc:/bin/1001
12:22:55
587:1
12:21
user:2:1:fsfs:root:/bin/:/2
bin:x:3d:fafa:toor:/user:/342
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:tabc55
##:#pp#:bb:bb:bb:%34^:$!#
#user#:vv:vv:vv:vv:ds:@234#

12、把passwdtest中第一个数字移动到行末尾

答案:sed -r 's/([^0-9]*)([0-9]+)([^0-9]*)(.*)/\1\3\4\2/' passwdtest 
[root@lgs-01 sed]# sed -r 's/([^0-9]*)([0-9]+)([^0-9]*)(.*)/\1\3\4\2/' passwdtest 
root:x::0:root:/root:/bin/bash0
bin:x::1:bin:/bin:/sbin/nologin1
daemon:x::2:daemon:/sbin:/sbin/nologin2
adm:x::4:adm:/var/adm:/sbin/nologin3
lp:x::7:lp:/var/spool/lpd:/sbin/nologin4
sync:x::0:sync:/sbin:/bin/sync5
shutdown:x::0:shutdown:/sbin:/sbin/shutdown6
halt:x::0:halt:/sbin:/sbin/halt7
mail:x::12:mail:/var/spool/mail:/sbin/nologin8
operator:x::0:operator:/root:/sbin/nologin11
games:x::100:games:/usr/games:/sbin/nologin12
ftp:x::50:FTP User:/var/ftp:/sbin/nologin14
nobody:x::99:Nobody:/:/sbin/nologin99
systemd-network:x::192:systemd Network Management:/:/sbin/nologin192
dbus:x::81:System message bus:/:/sbin/nologin81
polkitd:x::997:User for polkitd:/:/sbin/nologin999
postfix:x::89::/var/spool/postfix:/sbin/nologin89
sshd:x::74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin74
chrony:x::996::/var/lib/chrony:/sbin/nologin998
lgs:x::1000::/home/lgs:/bin/bash1008
abc:x::1000::/home/abc:/bin/bash1001
:22:5512
:1587
:2112
:2:1:fsfs:root:/bin/:/user2
:x:3d:fafa:toor:/user:/bin342
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:tabc55
##:##:bb:bb:bb:%pp^:$!#34
##:vv:vv:vv:vv:ds:@user#234

13、在passwdtest 20行到末行最前面加 ‘aaa:’

答案:sed -r '20,$ s/(.*)/aaa:\1/' passwdtest 
[root@lgs-01 sed]# sed -r '20,$ s/(.*)/aaa:\1/' passwdtest 
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:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
aaa:lgs:x:1008:1000::/home/lgs:/bin/bash
aaa:abc:x:1001:1000::/home/abc:/bin/bash
aaa:12:22:55
aaa:587:1
aaa:12:21
aaa:2:2:1:fsfs:root:/bin/:/user
aaa:342:x:3d:fafa:toor:/user:/bin
aaa:xx:xx:xx:xx:xx:xx:34
aaa:rr:rr:rr:rr:rr:rr:t55abc
aaa:##:#34#:bb:bb:bb:%pp^:$!#
aaa:#234#:vv:vv:vv:vv:ds:@user#

附加题1、把passwdtest中第一段和最后一个段调换位置,段是以任何特殊字符分割的

答案:sed -r 's/([0-9a-zA-Z]*)([^0-9a-zA-Z]*)(.*)([^0-9a-zA-Z]+)([0-9a-zA-Z]*)/\5\2\3\4\1/' passwdtest
[root@lgs-01 sed]# sed -r 's/([0-9a-zA-Z]*)([^0-9a-zA-Z]*)(.*)([^0-9a-zA-Z]+)([0-9a-zA-Z]*)/\5\2\3\4\1/' passwdtest
bash:x:0:0:root:/root:/bin/root
nologin:x:1:1:bin:/bin:/sbin/bin
nologin:x:2:2:daemon:/sbin:/sbin/daemon
nologin:x:3:4:adm:/var/adm:/sbin/adm
nologin:x:4:7:lp:/var/spool/lpd:/sbin/lp
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
nologin:x:8:12:mail:/var/spool/mail:/sbin/mail
nologin:x:11:0:operator:/root:/sbin/operator
nologin:x:12:100:games:/usr/games:/sbin/games
nologin:x:14:50:FTP User:/var/ftp:/sbin/ftp
nologin:x:99:99:Nobody:/:/sbin/nobody
nologin-network:x:192:192:systemd Network Management:/:/sbin/systemd
nologin:x:81:81:System message bus:/:/sbin/dbus
nologin:x:999:997:User for polkitd:/:/sbin/polkitd
nologin:x:89:89::/var/spool/postfix:/sbin/postfix
nologin:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/sshd
nologin:x:998:996::/var/lib/chrony:/sbin/chrony
bash:x:1008:1000::/home/lgs:/bin/lgs
bash:x:1001:1000::/home/abc:/bin/abc
55:22:12
1:587
21:12
user:2:1:fsfs:root:/bin/:/2
bin:x:3d:fafa:toor:/user:/342
34:xx:xx:xx:xx:xx:xx
t55abc:rr:rr:rr:rr:rr:rr
##:#34#:bb:bb:bb:%pp^:$!#
#234#:vv:vv:vv:vv:ds:@user#

附加题2、把passwdtest中出现的第一个数字和最后一段替换位置,段是以任何特殊字符分割的

答案: sed -r 's/([^0-9]*)([0-9]+)([^0-9]*)(.*)([^0-9a-zA-A]+)([0-9a-zA-Z]*)/\1\6\3\4\5\2/' passwdtest
[root@lgs-01 sed]#  sed -r 's/([^0-9]*)([0-9]+)([^0-9]*)(.*)([^0-9a-zA-A]+)([0-9a-zA-Z]*)/\1\6\3\4\5\2/' passwdtest
root:x:bash:0:root:/root:/bin/0
bin:x:nologin:1:bin:/bin:/sbin/1
daemon:x:nologin:2:daemon:/sbin:/sbin/2
adm:x:nologin:4:adm:/var/adm:/sbin/3
lp:x:nologin:7:lp:/var/spool/lpd:/sbin/4
sync:x:sync:0:sync:/sbin:/bin/5
shutdown:x:shutdown:0:shutdown:/sbin:/sbin/6
halt:x:halt:0:halt:/sbin:/sbin/7
mail:x:nologin:12:mail:/var/spool/mail:/sbin/8
operator:x:nologin:0:operator:/root:/sbin/11
games:x:nologin:100:games:/usr/games:/sbin/12
ftp:x:nologin:50:FTP User:/var/ftp:/sbin/14
nobody:x:nologin:99:Nobody:/:/sbin/99
systemd-network:x:nologin:192:systemd Network Management:/:/sbin/192
dbus:x:nologin:81:System message bus:/:/sbin/81
polkitd:x:nologin:997:User for polkitd:/:/sbin/999
postfix:x:nologin:89::/var/spool/postfix:/sbin/89
sshd:x:nologin:74:Privilege-separated SSH:/var/empty/sshd:/sbin/74
chrony:x:nologin:996::/var/lib/chrony:/sbin/998
lgs:x:bash:1000::/home/lgs:/bin/1008
abc:x:bash:1000::/home/abc:/bin/1001
55:22:12
1:587
21:12
user:2:1:fsfs:root:/bin/:/2
bin:x:3d:fafa:toor:/user:/342
xx:xx:xx:xx:xx:xx:34
rr:rr:rr:rr:rr:rr:t55abc
##:##:bb:bb:bb:%pp^:$!#34
##:vv:vv:vv:vv:ds:@user#234

猜你喜欢

转载自my.oschina.net/u/3804114/blog/1803373