sed练习题目

本文提供了一系列的sed练习题目,包括提取IP地址、处理/etc/passwd文件、修改配置文件内容等,旨在提升对sed命令的掌握和应用能力。
摘要由CSDN通过智能技术生成

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:PulseAud
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值