[2018.04.29 study notes] [sed practice questions]

sed practice questions

It is best to analyze the deduction on the draft paper, and pre-write the approximate regular expression code on the paper according to the analysis, which can greatly improve the accuracy.

The contents of the passwdtest file are:

[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. Copy /etc/passwd to /root/awk/passwdtest and print all lines with 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. Print lines 3 to 10 of passwdtest

答案: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. Print the line containing 'root' in passwdtest

答案: 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. Delete line 15 of passwdtest and all subsequent lines

答案: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. Delete the line containing 'bash' in passwdtest

答案: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. Replace 'root' with 'toor' in passwdtest

答案: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. Replace '/sbin/nologin' in passwdtest with '/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. Delete all numbers in lines 5 to 10 in passwdtest

答案: 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. Delete all special characters in passwdtest (except numbers and uppercase and lowercase letters)

答案: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. Swap the first word and the last word in 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. Replace the position of the first number and the last word appearing in 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. Move the first number in passwdtest to the end of the line

答案: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. Add 'aaa:' at the beginning of line 20 to the last line of passwdtest

答案: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#

Additional question 1. Swap the first and last paragraphs in passwdtest. The paragraphs are separated by any special characters.

答案: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#

Additional question 2. Replace the first number and the last paragraph appearing in passwdtest. The paragraph is separated by any special characters.

答案: 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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325070274&siteId=291194637