sed 练习--/etc/passwd
练习(sed)1. 取出passwd文件中包含root的行? 2. 取出passwd文件中以root开头的行? 3. 取出passwd文件中以root或sshd的行? 4. 取出passwd文件中包含sync和mail的行? 5. 取出passwd文件中前三行? 6. 取出passwd文件中第一行和第三行? 7. 取出passwd文件中第十行? 8. 删除passwd包含root字符串的行? 9. 删除passwd包含root和lp的行? 10. 删除passwd中adm到ganes的行? 11.删除passwd中第二行? 12.删除passwd中第二行到第十行? 13.删除passwd中第三行到第六行? 14.将oldboy追加到passwd文件第五行的后面? 15.将oldboy追加到passwd文件末尾? 16.将oldboy,oldgirl追加到passwd文件第十行的后面? 17. 将oldboy追加到passwd文件中包含sshd的下一行? 18.在passwd文件第一行的前面插入oldboy? 19.在passwd文件最后一行的前面插入oldboy? 20.在passwd文件第二行的前面插入oldboy,oldgirl? 21.在passwd文件中包含root行插入oldboy? 22.将passwd文件中的root替换为admic? 23.将passwd文件中第十行的root替换为admic? 24.将passwd文件中第三行到第十五行的root替换为admic? 25.将passwd文件中的root替换为admic忽略大小写? 26.将passwd文件中第十行以后的root替换为admic? 27.将passwd文件中以root开头的行,将bin替换为oldboy? 28.将passwd文件中每个root后面加上一个abc? 29.将passwd文件中每一行前面加上注释? 30.将passwd文件中每一行注释删掉? 31.将passwd文件中所有的#删除掉? 32.将passwd文件中root字符串全部删除? 33.将passwd文件中删除空行? 34.将passwd文件中的第一列与第七列的位置进行调换? 35.将passwd文件打印行号 36.将passwd文件排除空行和注释行 #号开头的 ?
解答:
1. 取出passwd文件中包含root的行?
[root@ecs-76840553 ~]# sed -n '/root/p' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/bin/false [root@ecs-76840553 ~]#
2. 取出passwd文件中以root开头的行?
[root@ecs-76840553 ~]# sed -n '/^root/p' /etc/passwd root:x:0:0:root:/root:/bin/bash [root@ecs-76840553 ~]#
3. 取出passwd文件中以root或sshd的行?
[root@ecs-76840553 ~]# sed -ne '/root/p' -e '/sshd/p' /etc/passwd root:x:0:0:root:/root:/bin/bash operator:x:11:0:operator:/root:/bin/false sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin [root@ecs-76840553 ~]#
4. 取出passwd文件中包含sync和mail的行?
[root@ecs-76840553 ~]# cat /etc/passwd | grep mail mail:x:8:12:mail:/var/spool/mail:/sbin/nologin [root@ecs-76840553 ~]# cat /etc/passwd | grep sync sync:x:5:0:sync:/sbin:/bin/false [root@ecs-76840553 ~]# cat /etc/passwd | sed -ne '/sync/p' -e '/mail/p' sync:x:5:0:sync:/sbin:/bin/false mail:x:8:12:mail:/var/spool/mail:/sbin/nologin [root@ecs-76840553 ~]#
5.取出passwd文件中前三行?
[root@ecs-76840553 ~]# cat /etc/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:/bin/false lp:x:4:7:lp:/var/spool/lpd:/bin/false sync:x:5:0:sync:/sbin:/bin/false shutdown:x:6:0:shutdown:/sbin:/bin/false halt:x:7:0:halt:/sbin:/bin/false mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/bin/false games:x:12:100:games:/usr/games:/bin/false ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:65534:65534:Kernel Overflow User:/:/bin/false dbus:x:81:81:System message bus:/:/sbin/nologin systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin sssd:x:996:993:User for sssd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin xiaoming:x:1000:1000::/home/xiaoming:/bin/bash [root@ecs-76840553 ~]# cat /etc/passwd | sed -n '1,3p' root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin [root@ecs-76840553 ~]#
6.取出passwd文件中第一行和第三行?
[root@ecs-76840553 sed]# cat /etc/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:/bin/false lp:x:4:7:lp:/var/spool/lpd:/bin/false sync:x:5:0:sync:/sbin:/bin/false shutdown:x:6:0:shutdown:/sbin:/bin/false halt:x:7:0:halt:/sbin:/bin/false mail:x:8:12:mail:/var/spool/mail:/sbin/nologin operator:x:11:0:operator:/root:/bin/false games:x:12:100:games:/usr/games:/bin/false ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:65534:65534:Kernel Overflow User:/:/bin/false dbus:x:81:81:System message bus:/:/sbin/nologin systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin systemd-resolve:x:193:193:systemd Resolver:/:/sbin/nologin tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin polkitd:x:998:996:User for polkitd:/:/sbin/nologin unbound:x:997:995:Unbound DNS resolver:/etc/unbound:/sbin/nologin sssd:x:996:993:User for sssd:/:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin xiaoming:x:1000:1000::/home/xiaoming:/bin/bash [root@ecs-76840553 sed]# cat /etc/passwd | sed -n '1p;3p' root:x:0:0:root:/root:/bin/bash daemon:x:2:2:daemon:/sbin:/sbin/nologin [root@ecs-76840553 sed]#
7. 取出passwd文件中第十行?
[root@ecs-76840553 sed]# cat /etc/passwd | sed -n '10p' operator:x:11:0:operator:/root:/bin/false
8.删除passwd包含root字符串的行?
[root@VM-4-13-centos sed]# cat /etc/passwd | sed '/root/d'
9.删除passwd包含root和lp的行?
[root@VM-4-13-centos sed]# cat /etc/passwd | sed '/root/d;/lp/d'
10.删除passwd中adm到shutdown的行?
[root@VM-4-13-centos sed]# cat /etc/passwd | sed -n '/adm/,/shutdown/p' 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
11.删除passwd中第二行?
[root@VM-4-13-centos sed]# cat /etc/passwd | sed '2d'
12.删除passwd中第二行到第十行?
[root@VM-4-13-centos ~]# cat /etc/passwd | sed '2,10d'
13.删除passwd中第三行到第六行?
[root@VM-4-13-centos ~]# cat /etc/passwd | sed '3,6d'
14.将oldboy追加到passwd文件第五行的后面?
[root@VM-4-13-centos ~]# cat /etc/passwd | sed '5aoldboy' 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 oldboy
15.将oldboy追加到passwd文件末尾?
cat /etc/passwd | sed '$aoldboy'
16.将oldboy,oldgirl追加到passwd文件第十行的后面?
[root@VM-4-13-centos ~]# cat /etc/passwd | sed '10aoldboy,oldgirl' 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 oldboy,oldgirl games:x:12:100:games:/usr/games:/sbin/nologin
17. 将oldboy追加到passwd文件中包含sshd的下一行?
cat /etc/passwd | sed '/sshd/aoldboy'
18.在passwd文件第一行的前面插入oldboy?
cat /etc/passwd | sed '1ioidboy'
19.在passwd文件最后一行的前面插入oldboy?
cat /etc/passwd | sed '$ioldboy'
20.在passwd文件第二行的前面插入oldboy,oldgirl?
cat /etc/passwd | sed '2ioldboy,oldgirl'
21 在passwd文件中包含root行插入oldboy?
cat /etc/passwd | sed '/root/ioldboy'
oldboy 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 oldboy operator:x:11:0:operator:/root:/sbin/nologin
22.将passwd文件中的root替换为admic?
cat /etc/passwd| sed 's/root/admic/'
admic:x:0:0:admic:/admic:/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:/admic:/sbin/nologin
23.将passwd文件中第十行的root替换为admic?
cat /etc/passwd | sed '10s/root/admic/'
24.将passwd文件中第三行到第十五行的root替换为admic?
cat /etc/passwd | sed '3,15s/root/admic/'
25.将passwd文件中的root替换为admic忽略大小写?
cat /etc/passwd | sed 's/root/admic/ig'
26.将passwd文件中第十行以后的root替换为admic?
cat /etc/passwd | sed '10,$s/root/admic/'
27.将passwd文件中以root开头的行,将bin替换为oldboy?
cat /etc/passwd |sed '/^root/s/bin/oldboy/g'
28.将passwd文件中每个root后面加上一个abc?
cat /etc/passwd |sed 's/root/rootabc/g'
29.将passwd文件中每一行前面加上注释?
cat /etc/passwd | sed 'i"注释"'
30.将passwd文件中每一行注释删掉?
cat /etc/passwd | sed '/"注释"/d'
31.将passwd文件中所有的#删除掉?
sed -i 's/#//g' /etc/passwd
32.将passwd文件中root字符串全部删除?
sed -i 's/root//g' /etc/passwd
33.将passwd文件中删除空行?
[root@VM-4-13-centos sed]# cat 1.txt 1 2 33 [root@VM-4-13-centos sed]# cat 1.txt |sed '/^$/d' 1 2 33 [root@VM-4-13-centos sed]# cat 1.txt |sed '/^$/d' |sed '/^ /d' 1 2 33
34.将passwd文件中的第一列与第七列的位置进行调换?
35.将passwd文件打印行号
cat /etc/passwd | sed '='
36.将passwd文件排除空行和注释行 #号开头的 ?
[root@VM-4-13-centos sed]# cat 2.txt #dgrgrrgrq dsgrwgergrgre #dfgrrre1233445 12345 #dsgvgergr #dgrgrrgrq dsgrwgergrgre #dfgrrre1233445 12345 #dsgvgergr #dgrgrrgrq dsgrwgergrgre #dfgrrre1233445 12345 #dsgvgergr #dgrgrrgrq [root@VM-4-13-centos sed]# cat 2.txt | sed '/^$/d;/#/d' dsgrwgergrgre 12345 dsgrwgergrgre 12345 dsgrwgergrgre 12345