sed练习题目

1.11.8 sed练习题目

1.用sed取出ifconfig中的ipv4地址

[root@CentOS7 ~]# ifconfig|sed -nr '2s/^(.*inet )(.*)( netmask .*)$/2/p'
192.168.110.131 

2.显示/etc/passwd的最后一行

[root@CentOS7 ~]# awk 'END{print$0}' /etc/passwd
user6:x:4063:4067::/home/user6:/bin/bash
[root@CentOS7 ~]# tail -n1 /etc/passwd
user6:x:4063:4067::/home/user6:/bin/bash
[root@CentOS7 ~]# sed -n '$p' /etc/passwd 
user6:x:4063:4067::/home/user6:/bin/bash

3.显示/etc/passwd的第一行到第三行

[root@CentOS7 ~]# awk '{if (NR>=1 && NR<=3) print $0}' /etc/passwd 
##print 直接后跟变量名,不用加$,$0可以省略,if和()之间有无空格都可,()和print之间也一样
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@CentOS7 ~]#cat /etc/passwd | awk '{if(NR>=1 && NR<=3)print}' 
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@CentOS7 ~]# head -n3 /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
[root@CentOS7 ~]# 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

4.显示/etc/fstab 中以U开头的行

[root@CentOS7 ~]# cat /etc/fstab |grep "^U"
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0
[root@CentOS7 ~]# cat /etc/fstab |sed -nr '/^U/p'
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0
[root@CentOS7 ~]# cat /etc/fstab |awk '/^U/{print}'
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0

5.用sed的regex只显示ifconfig的第二行

[root@CentOS7 ~]# ifconfig |sed -n '2p'
    inet 192.168.110.131  netmask 255.255.255.0  broadcast 192.168.110.255
[root@CentOS7 ~]# ifconfig |head -n2 |tail -n1
    inet 192.168.110.131  netmask 255.255.255.0  broadcast 192.168.110.255
[root@CentOS7 ~]# ifconfig |awk '{if (NR==2); print$0}' ##如果NR==2,后面什么都没跟,最后打印所有的行了,这里分号表示if语句结束了
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.110.131  netmask 255.255.255.0  broadcast 192.168.110.255
        inet6 fe80::6771:3c83:1113:d701  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8e:b3:16  txqueuelen 1000  (Ethernet)
        RX packets 137  bytes 16052 (15.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 59  bytes 9024 (8.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.20.129.161  netmask 255.255.0.0  broadcast 172.20.255.255
        inet6 fe80::4318:d843:7a34:9275  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:8e:b3:20  txqueuelen 1000  (Ethernet)
        RX packets 22409  bytes 2432535 (2.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 5029  bytes 633655 (618.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 50  bytes 5084 (4.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 50  bytes 5084 (4.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@CentOS7 ~]# ifconfig |awk '{if (NR==2) print$0}'
        inet 192.168.110.131  netmask 255.255.255.0  broadcast 192.168.110.255

6.只显示磁盘利用率

[root@CentOS7 ~]# df |awk '//dev/sd/{print $1,$5}' ##$1和$5之间用,分隔,就表示空格
/dev/sda2 10%
/dev/sda6 1%
/dev/sda3 1%
/dev/sda1 16%
[root@CentOS7 ~]# df |awk '//dev/sd/{print $1" "$5}' ##$1和$5之间加什么,用“内容”
/dev/sda2 10%
/dev/sda6 1%
/dev/sda3 1%
/dev/sda1 16%
[root@CentOS7 ~]# df |awk -F "[ ]+" '//dev/sd/{print $1"="$5}'
/dev/sda2=10%
/dev/sda6=1%
/dev/sda3=1%
/dev/sda1=16%
[root@CentOS7 ~]# df |awk -F "[[:space:]]+" '//dev/sd/{print $5}'
10%
1%
1%
16%
[root@CentOS7 ~]# df |awk -F "[ ]+" '//dev/sd/{print $5}'
10%
1%
1%
16%

7.显示从第一行往后的三行/etc/passwd

[root@CentOS7 ~]# 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
adm:x:3:4:adm:/var/adm:/sbin/nologin
[root@CentOS7 ~]# cat /etc/passwd |awk '{if(NR>=1 && NR<=4) print}'
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

8.显示/etc/passwd从s开头的行到f开头之间的行

[root@CentOS7 ~]# cat /etc/passwd |sed -n '/^s/,/^f/p'
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
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sssd:x:998:996:User for sssd:/:/sbin/nologin
libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
gluster:x:995:992:GlusterFS daemons:/var/run/gluster:/sbin/nologin
saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
chrony:x:992:987::/var/lib/chrony:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
unbound:x:991:986:Unbound DNS resolver:/etc/unbound:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
geoclue:x:990:984:User for geoclue:/var/lib/geoclue:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
qemu:x:107:107:qemu user:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
zhu:x:1000:1000:zhu:/home/zhu:/bin/bash
mandriva:x:4004:3004::/home/mandriva:/bin/bash
fedora:x:2003:2003:Feora Community:/home/fedora:/bin/tcsh
ssd:x:4058:4062::/home/ssd:/bin/bash
memcached:x:987:981:Memcached daemon:/run/memcached:/sbin/nologin
user2:x:4059:4063::/home/user2:/bin/sh
user1:x:4060:4064::/home/user1:/bin/bash
user3:x:4061:4065::/home/user3:/bin/bash
user5:x:4062:4066::/home/user5:/bin/bash
user6:x:4063:4067::/home/user6:/bin/bash

9.显示/etc/passwd 第三行到f开头的行

[root@CentOS7 ~]# cat /etc/passwd |sed -n '3,/^f/p'
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

10.只显示/etc/passwd偶数行

[root@CentOS7 ~]# cat -n /etc/passwd |sed -n '2~2p'
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     8	halt:x:7:0:halt:/sbin:/sbin/halt
    10	operator:x:11:0:operator:/root:/sbin/nologin
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    14	systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    16	polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    18	libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
    20	colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
    22	saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    24	setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
    26	pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
    28	rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    30	unbound:x:991:986:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    32	usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
    34	radvd:x:75:75:radvd user:/:/sbin/nologin
    36	ntp:x:38:38::/etc/ntp:/sbin/nologin
    38	gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
    40	avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    42	tcpdump:x:72:72::/:/sbin/nologin
    44	mandriva:x:4004:3004::/home/mandriva:/bin/bash
    46	habse:x:988:982::/home/habse:/bin/nologin
    48	nginx:x:4029:4031::/home/nginx:/bin/bash
    50	git:x:4033:4036::/home/git:/bin/bash
    52	u:x:4036:4041::/home/u:/bin/bash
    54	tcsh:x:4038:4043::/home/tcsh:/sbin/nologin
    56	nologin:x:4040:4045::/home/nologin:/sbin/nologin
    58	basher:x:4042:4047::/home/basher:/sbin/nologin
    60	tomcat1:x:4047:4035::/home/tomcat1:/bin/bash
    62	wang:x:4049:4053::/home/wang:/bin/bash
    64	apache:x:80:80::/var/www:/sbin/nologin
    66	wan:x:4054:4058::/home/wan:/bin/bash
    68	wan1233:x:4056:4060::/home/wan1233:/bin/bash
    70	ssd:x:4058:4062::/home/ssd:/bin/bash
    72	user2:x:4059:4063::/home/user2:/bin/sh
    74	user3:x:4061:4065::/home/user3:/bin/bash
    76	user6:x:4063:4067::/home/user6:/bin/bash

11.只显示/etc/passwd奇数行

[root@CentOS7 ~]# cat -n /etc/passwd |sed -n '1~2p'
 1	root:x:0:0:root:/root:/bin/bash
 3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
 5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
 7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
 9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
11	games:x:12:100:games:/usr/games:/sbin/nologin
13	nobody:x:99:99:Nobody:/:/sbin/nologin
15	dbus:x:81:81:System message bus:/:/sbin/nologin
17	sssd:x:998:996:User for sssd:/:/sbin/nologin
19	rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
21	gluster:x:995:992:GlusterFS daemons:/var/run/gluster:/sbin/nologin
23	abrt:x:173:173::/etc/abrt:/sbin/nologin
25	rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
27	chrony:x:992:987::/var/lib/chrony:/sbin/nologin
29	nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
31	tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
33	geoclue:x:990:984:User for geoclue:/var/lib/geoclue:/sbin/nologin
35	qemu:x:107:107:qemu user:/:/sbin/nologin
37	gdm:x:42:42::/var/lib/gdm:/sbin/nologin
39	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
41	postfix:x:89:89::/var/spool/postfix:/sbin/nologin
43	zhu:x:1000:1000:zhu:/home/zhu:/bin/bash
45	fedora:x:2003:2003:Feora Community:/home/fedora:/bin/tcsh
47	gentoo:x:4028:4029:Gentoo Distribution:/home/gentoo:/bin/csh
49	varnish:x:4030:4032::/home/varnish:/bin/bash
51	mage:x:4035:4039::/home/mage:/bin/bash
53	bash:x:4037:4042::/home/bash:/bin/bash
55	testbash:x:4039:4044::/home/testbash:/sbin/nologin
57	userbasher:x:4041:4046::/home/userbasher:/bin/bash
59	user:x:4043:4048::/home/user:/bin/bash
61	mysql1:x:4048:4052::/home/mysql1:/bin/bash
63	userdf:x:4050:4054::/home/userdf:/bin/bash
65	user112:x:4053:4057::/home/user112:/bin/bash
67	wan1:x:4055:4059::/home/wan1:/bin/bash
69	usd:x:4057:4061::/home/usd:/bin/bash
71	memcached:x:987:981:Memcached daemon:/run/memcached:/sbin/nologin
73	user1:x:4060:4064::/home/user1:/bin/bash
75	user5:x:4062:4066::/home/user5:/bin/bash

12.删除/etc/passwd第二行到第10行

[root@CentOS7 ~]# cat -n /etc/passwd |sed -n '2,10d;p'
     1	root:x:0:0:root:/root:/bin/bash
    11	games:x:12:100:games:/usr/games:/sbin/nologin
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    13	nobody:x:99:99:Nobody:/:/sbin/nologin
    14	systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    15	dbus:x:81:81:System message bus:/:/sbin/nologin
    16	polkitd:x:999:998:User for polkitd:/:/sbin/nologin
    17	sssd:x:998:996:User for sssd:/:/sbin/nologin
    18	libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
    19	rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
    20	colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
    21	gluster:x:995:992:GlusterFS daemons:/var/run/gluster:/sbin/nologin
    22	saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
    23	abrt:x:173:173::/etc/abrt:/sbin/nologin
    24	setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
    25	rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
    26	pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
    27	chrony:x:992:987::/var/lib/chrony:/sbin/nologin
    28	rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
    29	nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
    30	unbound:x:991:986:Unbound DNS resolver:/etc/unbound:/sbin/nologin
    31	tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    32	usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
    33	geoclue:x:990:984:User for geoclue:/var/lib/geoclue:/sbin/nologin
    34	radvd:x:75:75:radvd user:/:/sbin/nologin
    35	qemu:x:107:107:qemu user:/:/sbin/nologin
    36	ntp:x:38:38::/etc/ntp:/sbin/nologin
    37	gdm:x:42:42::/var/lib/gdm:/sbin/nologin
    38	gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
    39	sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    40	avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
    41	postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    42	tcpdump:x:72:72::/:/sbin/nologin
    43	zhu:x:1000:1000:zhu:/home/zhu:/bin/bash
    44	mandriva:x:4004:3004::/home/mandriva:/bin/bash
    45	fedora:x:2003:2003:Feora Community:/home/fedora:/bin/tcsh
    46	habse:x:988:982::/home/habse:/bin/nologin
    47	gentoo:x:4028:4029:Gentoo Distribution:/home/gentoo:/bin/csh
    48	nginx:x:4029:4031::/home/nginx:/bin/bash
    49	varnish:x:4030:4032::/home/varnish:/bin/bash
    50	git:x:4033:4036::/home/git:/bin/bash
    51	mage:x:4035:4039::/home/mage:/bin/bash
    52	u:x:4036:4041::/home/u:/bin/bash
    53	bash:x:4037:4042::/home/bash:/bin/bash
    54	tcsh:x:4038:4043::/home/tcsh:/sbin/nologin
    55	testbash:x:4039:4044::/home/testbash:/sbin/nologin
    56	nologin:x:4040:4045::/home/nologin:/sbin/nologin
    57	userbasher:x:4041:4046::/home/userbasher:/bin/bash
    58	basher:x:4042:4047::/home/basher:/sbin/nologin
    59	user:x:4043:4048::/home/user:/bin/bash
    60	tomcat1:x:4047:4035::/home/tomcat1:/bin/bash
    61	mysql1:x:4048:4052::/home/mysql1:/bin/bash
    62	wang:x:4049:4053::/home/wang:/bin/bash
    63	userdf:x:4050:4054::/home/userdf:/bin/bash
    64	apache:x:80:80::/var/www:/sbin/nologin
    65	user112:x:4053:4057::/home/user112:/bin/bash
    66	wan:x:4054:4058::/home/wan:/bin/bash
    67	wan1:x:4055:4059::/home/wan1:/bin/bash
    68	wan1233:x:4056:4060::/home/wan1233:/bin/bash
    69	usd:x:4057:4061::/home/usd:/bin/bash
    70	ssd:x:4058:4062::/home/ssd:/bin/bash
    71	memcached:x:987:981:Memcached daemon:/run/memcached:/sbin/nologin
    72	user2:x:4059:4063::/home/user2:/bin/sh
    73	user1:x:4060:4064::/home/user1:/bin/bash
    74	user3:x:4061:4065::/home/user3:/bin/bash
    75	user5:x:4062:4066::/home/user5:/bin/bash
    76	user6:x:4063:4067::/home/user6:/bin/bash

13.在/etc/passwd 中1~20行每行后追加新行new line

[root@CentOS7 ~]# cat -n /etc/passwd |sed  '1,20a 
ew line'
     1	root:x:0:0:root:/root:/bin/bash
new line
     2	bin:x:1:1:bin:/bin:/sbin/nologin
new line
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
new line
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
new line
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
new line
     6	sync:x:5:0:sync:/sbin:/bin/sync
new line
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
new line
     8	halt:x:7:0:halt:/sbin:/sbin/halt
new line
     9	mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
new line
    10	operator:x:11:0:operator:/root:/sbin/nologin
new line
    11	games:x:12:100:games:/usr/games:/sbin/nologin
new line
    12	ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
new line
    13	nobody:x:99:99:Nobody:/:/sbin/nologin
new line
    14	systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
new line
    15	dbus:x:81:81:System message bus:/:/sbin/nologin
new line
    16	polkitd:x:999:998:User for polkitd:/:/sbin/nologin
new line
    17	sssd:x:998:996:User for sssd:/:/sbin/nologin
new line
    18	libstoragemgmt:x:997:994:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
new line
    19	rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
new line
    20	colord:x:996:993:User for colord:/var/lib/colord:/sbin/nologin
new line

14.在.bashrc 的Source下面加一行newline

[root@CentOS7 ~]# sed  '/Source/a 
ewline' .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias mancn='man -M /usr/man/zh_CN'
# Source global definitions
newline
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
alias cdnet='cd /etc/sysconfig/network-scripts'
LANG=en_US.utf8

前面加一行

[root@CentOS7 ~]# sed  '/Source/i 
ewline' .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias mancn='man -M /usr/man/zh_CN'
newline
# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
alias cdnet='cd /etc/sysconfig/network-scripts'
LANG=en_US.utf8

加2行

[root@CentOS7 ~]# sed  '/Source/i 
ewline 
newline2' .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias mancn='man -M /usr/man/zh_CN'
newline 
newline2
# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
alias cdnet='cd /etc/sysconfig/network-scripts'
LANG=en_US.utf8

替换source这行

[root@CentOS7 ~]# sed  '/Source/c 
ewline' .bashrc
# .bashrc
# User specific aliases and functions
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias mancn='man -M /usr/man/zh_CN'
newline
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi
alias cdnet='cd /etc/sysconfig/network-scripts'
LANG=en_US.utf8

15.把/etc/fstab中UUID开头的行,过渡出来,写到新文件/root/f1中

[root@CentOS7 ~]# cat /etc/fstab |sed '/^UUID/w /root/f1'
#
# /etc/fstab
# Created by anaconda on Wed Jul 18 17:26:27 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0
[root@CentOS7 ~]# cat f1
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0

16.在UUID开头的行后面读入/etc/issue文件的内容

[root@CentOS7 ~]# cat /etc/fstab |sed '/^UUID/r /etc/issue'
#
# /etc/fstab
# Created by anaconda on Wed Jul 18 17:26:27 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
the tty is l
the hostname is 

the current time is 	
S
Kernel 
 on an m
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
the tty is l
the hostname is 

the current time is 	
S
Kernel 
 on an m
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
the tty is l
the hostname is 

the current time is 	
S
Kernel 
 on an m
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
the tty is l
the hostname is 

the current time is 	
S
Kernel 
 on an m
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0
the tty is l
the hostname is 

the current time is 	
S
Kernel 
 on an m

17.为被regex匹配到的行打印行号

[root@CentOS7 ~]# cat /etc/fstab |sed '/^UUID/= '
#
# /etc/fstab
# Created by anaconda on Wed Jul 18 17:26:27 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
9
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
10
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
11
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
12
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
13
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0

18.除了模式空间的行其他行的行号全显示出来

[root@CentOS7 ~]# cat /etc/fstab |sed '/^UUID/d;= '
1

2
#
3
# /etc/fstab
4
# Created by anaconda on Wed Jul 18 17:26:27 2018
5
#
6
# Accessible filesystems, by reference, are maintained under '/dev/disk'
7
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8
#
14

19.除了第3行,其他都打印(有行号)

[root@CentOS7 ~]# cat /etc/fstab |sed '3d;='
1
2
#
4
# Created by anaconda on Wed Jul 18 17:26:27 2018
5
#
6
# Accessible filesystems, by reference, are maintained under '/dev/disk'
7
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
8
#
9
UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
10
UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
11
UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
12
UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
13
UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0
14

[root@CentOS7 ~]# cat -n /etc/fstab |sed -n '3d;p'
 1	
 2	#
 4	# Created by anaconda on Wed Jul 18 17:26:27 2018
 5	#
 6	# Accessible filesystems, by reference, are maintained under '/dev/disk'
 7	# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
 8	#
 9	UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
10	UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
11	UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
12	UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
13	UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0
14	
[root@CentOS7 ~]# cat -n /etc/fstab |sed -n '3!p'
     1	
     2	#
     4	# Created by anaconda on Wed Jul 18 17:26:27 2018
     5	#
     6	# Accessible filesystems, by reference, are maintained under '/dev/disk'
     7	# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
     8	#
     9	UUID=50ad6c96-3d5a-4840-9f52-11f045c46a1d /                       xfs     defaults        0 0
    10	UUID=755562ec-35e1-4ab9-bd08-8b0a691bde48 /boot                   xfs     defaults        0 0
    11	UUID=48c79d0b-623e-4a61-8b5e-da5b2f0050b6 /data                   xfs     defaults        0 0
    12	UUID=7067af7e-e829-49ba-b713-55296c046e27 swap                    swap    defaults        0 0
    13	UUID=d045c3b8-68ba-4479-9b98-ceec0c8aa526 /home               xfs     defaults         0 0
    14	

21.将root替换为ROOT,将r..t替换为haha,在r..t后面加er,如rooter
,要求将/etc/default/grub 中的LINUX那行quiet后加net.ifnames=0
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"

[root@CentOS7 ~]# cat /etc/passwd |sed -nr 's/r..t>/ROOT/pg'
ROOT:x:0:0:ROOT:/ROOT:/bin/bash
operator:x:11:0:operator:/ROOT:/sbin/nologin
[root@CentOS7 ~]# cat /etc/passwd |sed -nr 's/r..t>/haha/pg'
haha:x:0:0:haha:/haha:/bin/bash
operator:x:11:0:operator:/haha:/sbin/nologin
[root@CentOS7 ~]# cat /etc/passwd |sed -nr 's/(r..t>)/1er/pg'
rooter:x:0:0:rooter:/rooter:/bin/bash
operator:x:11:0:operator:/rooter:/sbin/nologin
[root@CentOS7 ~]#  cat /etc/default/grub|sed -n '/LINUX/s/"$/ net.ifnames=0"/p'
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0"
[root@CentOS7 ~]# cat /etc/default/grub|sed -nr 's/^(.*quiet)/1 net.ifname=0/p'
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifname=0"

22.使用sed取出IPV4的地址(至少5种方法)

[root@CentOS7 ~]# ifconfig |head -n2 |tail -n1  |tr -s ' ' |cut -d' ' -f3
192.168.110.131
[root@CentOS7 ~]# ifconfig ens33 |grep -w inet |tr -s ' ' |cut -d" " -f3
192.168.110.131
[root@CentOS7 ~]# ifconfig ens33 |sed -nr 's/^(.*inet )(.*)( netmask.*)$/2/p'
192.168.110.131 
[root@CentOS7 ~]# ifconfig ens33 |awk -F "[[:space:]]+" '{if(NR==2) print $3}'
192.168.110.131
[root@CentOS7 ~]# ifconfig ens33 |awk   '{if(NR==2) print $2}'##-F "[[:space:]]+"等价于FS="[ ]+"
192.168.110.131
[root@CentOS7 ~]# ifconfig ens33 |awk  '{FS="[ ]+"; if(NR==2) print $3}'
192.168.110.131
[root@CentOS7 ~]# ifconfig ens33 |sed '2!d;s/^.*inet//;s/ netmask.*//'
192.168.110.131 
[root@CentOS7 ~]# ifconfig ens33 |sed -nr '2s/.* inet (.*) netmask.*/1/p'
192.168.110.131 

23.将一个命令的执行结果进行压缩,重定向到压缩文件中

[root@CentOS7 ~]# ls |xargs tar zcf root.tar.gz 
[root@CentOS7 ~]# tar ft root.tar.gz 
1.sh
b
Desktop/
Documents/
Downloads/
f1
f2
initial-setup-ks.cfg
Music/
Pictures/
Pictures/Screenshot from 2018-07-21 08-45-39.png
Public/
root.tar.gz
space.txt
Templates/
test.txt
Videos/

24.多点编辑将/etc/passwd 中空行及空行的行号打印出来

25.取出/etc/sysconfig/network-scripts/ 中的基名和目录名

[root@CentOS7 ~]# basename /etc/sysconfig/network-scripts/
network-scripts
[root@CentOS7 ~]# dirname  /etc/sysconfig/network-scripts/
/etc/sysconfig
[root@CentOS7 ~]#echo "/etc/sysconfig/network-scripts/"|grep -Eo "[^/]+/?$"
network-scripts/
[root@CentOS7 ~]# echo "/etc/sysconfig/network-scripts/"|sed -r 's/^(.*/)([^/]+/?)/2/'
network-scripts/
[root@CentOS7 ~]# echo "/etc/sysconfig/network-scripts/"|sed -r 's/^(.*/)([^/]+/?)/1/'
/etc/sysconfig/
[root@CentOS7 ~]# echo "/etc/sysconfig/network-scripts"|sed -r 's/^(.*/)([^/]+/?)/2/'
network-scripts

26.去掉centos6中的/etc/httpd/conf/httpd.conf

<VirtualHost*:80> 到#中的每行开头的#号

[root@CentOS6 ~]# cat /etc/httpd/conf/httpd.conf |sed -r
'/^#<VirtualHost/,/^#</VirtualHost/s/#//'
<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /www/docs/dummy-host.example.com
    ServerName dummy-host.example.com
    ErrorLog logs/dummy-host.example.com-error_log
    CustomLog logs/dummy-host.example.com-access_log common
</VirtualHost>

27.将/etc/fstab中开头不是#加上#

    [root@CentOS6 ~]# cat /etc/fstab |sed -r 's/^([^#].*)/#1/'
    
    #
    # /etc/fstab
    # Created by anaconda on Wed Jul 18 17:13:36 2018
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk'
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
    #
    #UUID=959dbbae-a23d-4e36-a306-00ffeeb0ac35 /                       ext4    defaults        1 1
    #UUID=204cb4a7-64cd-4d54-8757-4abaedf6564c /boot                   ext4    defaults        1 2
    #UUID=31ab6aee-936c-4aa4-92e3-31f6348c976c /data                   ext4    defaults        1 2
    #UUID=ccb69c46-a8b7-46ec-9015-56656319c72a swap                    swap    defaults        0 0
    #tmpfs                   /dev/shm                tmpfs   defaults        0 0
    #devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
    #sysfs                   /sys                    sysfs   defaults        0 0
    #proc                    /proc                   proc    defaults        0 0

[root@centos7 ~]# cat /etc/fstab |sed -r 's/^([^#].*)/#&/'
#
# /etc/fstab
# Created by anaconda on Sat Aug 18 23:02:43 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
#UUID=d9c33ebe-7198-496d-9211-468ed2aff31d /                       xfs     defaults        0 0
#UUID=61e1da9b-93da-4aa7-bc62-148e74505ccf /boot                   xfs     defaults        0 0
#UUID=d4001f2b-fe46-4479-aaf4-59ecce51eb95 /data                   xfs     defaults        0 0
#UUID=d0c3c003-2fb6-453c-8c74-fc3c1b1acaf8 swap                    swap    defaults        0 0

28.将/etc/fstab中的小写字母转换成大写字母

[root@centos7 ~]# cat /etc/fstab |sed -r 's/[[:alpha:]]/u&/g'
#
# /ETC/FSTAB
# CREATED BY ANACONDA ON SAT AUG 18 23:02:43 2018
#
# ACCESSIBLE FILESYSTEMS, BY REFERENCE, ARE MAINTAINED UNDER '/DEV/DISK'
# SEE MAN PAGES FSTAB(5), FINDFS(8), MOUNT(8) AND/OR BLKID(8) FOR MORE INFO
#
UUID=D9C33EBE-7198-496D-9211-468ED2AFF31D /                       XFS     DEFAULTS        0 0
UUID=61E1DA9B-93DA-4AA7-BC62-148E74505CCF /BOOT                   XFS     DEFAULTS        0 0
UUID=D4001F2B-FE46-4479-AAF4-59ECCE51EB95 /DATA                   XFS     DEFAULTS        0 0
UUID=D0C3C003-2FB6-453C-8C74-FC3C1B1ACAF8 SWAP                    SWAP    DEFAULTS        0 0

[root@centos7 ~]# cat /etc/fstab |sed -r 's/[[:alpha:]]/u&/g'|sed -r 's/[[:alpha:]]/l&/g'
##l 表示小写u表示大写&引用前面被正则匹配到的
#
# /etc/fstab
# created by anaconda on sat aug 18 23:02:43 2018
#
# accessible filesystems, by reference, are maintained under '/dev/disk'
# see man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
uuid=d9c33ebe-7198-496d-9211-468ed2aff31d /                       xfs     defaults        0 0
uuid=61e1da9b-93da-4aa7-bc62-148e74505ccf /boot                   xfs     defaults        0 0
uuid=d4001f2b-fe46-4479-aaf4-59ecce51eb95 /data                   xfs     defaults        0 0
uuid=d0c3c003-2fb6-453c-8c74-fc3c1b1acaf8 swap                    swap    defaults        0 0

29.将sed的一串代码放到文件中 ’s///‘,从文件中读取正则来执行

[root@centos7 ~]# cat sed.script
s/[[:alpha:]]/u&/g
[root@centos7 ~]# sed -r -f sed.script /etc/fstab
#
# /ETC/FSTAB
# CREATED BY ANACONDA ON SAT AUG 18 23:02:43 2018
#
# ACCESSIBLE FILESYSTEMS, BY REFERENCE, ARE MAINTAINED UNDER '/DEV/DISK'
# SEE MAN PAGES FSTAB(5), FINDFS(8), MOUNT(8) AND/OR BLKID(8) FOR MORE INFO
#
UUID=D9C33EBE-7198-496D-9211-468ED2AFF31D /                       XFS     DEFAULTS        0 0
UUID=61E1DA9B-93DA-4AA7-BC62-148E74505CCF /BOOT                   XFS     DEFAULTS        0 0
UUID=D4001F2B-FE46-4479-AAF4-59ECCE51EB95 /DATA                   XFS     DEFAULTS        0 0
UUID=D0C3C003-2FB6-453C-8C74-FC3C1B1ACAF8 SWAP                    SWAP    DEFAULTS        0 0
[root@centos7 ~]# 

30.将/eec/selinux/config 中的SELINUX=enforcing 改为SELINUX=disabled

[root@centos7 ~]# cat /etc/selinux/config |sed -i 's/SELINUX=enforcing/SELINUX=disabled/'
sed: no input files
[root@centos7 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
[root@centos7 ~]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

31.取出版本号

[root@centos7 etc]# cat /etc/centos-release|sed -r 's/[^0-9]+([0-9]+).*/1/'
7
[root@centos7 etc]# cat /etc/centos-release|sed -r 's/[^[:digit:]]+([[:digit:]]+).*/1/'
7
[root@centos7 etc]# cat /etc/centos-release|awk -F "[ .]" '{print $4}'

32 删除/etc/httpd/conf/httpd.conf 以空格+#号开头的无用行,以及空行

[root@CentOS6 ~]# sed '/^$/d;/^[ ]*#/d' /etc/httpd/conf/httpd.conf

33将奇数行和偶数行合并

[root@centos7 etc]# seq 1 10|sed -r 'N;s#
##' 
12
34
56
78
910

1.awk 'NR%2==1' file  / /显示奇数行
2.sed -n '1,$n;p' file   / /显示偶数行
3.sed -n '1,$p;n' file / /显示奇数行
4.奇数行:sed '2~2d' file / /显示奇数行
5.偶数行:sed '1~2d' file/ /显示偶数行

34、删除centos7系统/etc/grub2.cfg文件中所有以空白开头的行行首的空白字符

35、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的# 和空白字符

36、在centos6系统/root/install.log每一行行首增加#号

37、在/etc/fstab文件中不以#开头的行的行首增加#号

38、处理/etc/fstab路径,使用sed命令取出其目录名和基名

39、利用sed 取出ifconfig命令中本机的IPv4地址 7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个 字段的重复次数

41、统计/etc/init.d/functions文件中每个单词的出现次数,并排序(用grep和 sed两种方法分别实现)

42、将文本文件的n和n+1行合并为一行,n为奇数行
seq 1 10|sed 'N;s/ //'

原文地址:https://www.cnblogs.com/huangsefeizhu/p/11506801.html