三剑客之sed牛刀小试(二)-创新互联

  • 文本文件

    成都创新互联主营阜南网站建设的网络公司,主营网站建设方案,App定制开发,阜南h5微信小程序开发搭建,阜南网站营销推广欢迎阜南等地区企业咨询

[root@chbo sed.test]# cat test

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

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

[root@chboa sed.test]# nl test|sed -n '/root/p' test

root:x:0:0:root:/root:/bin/bash

  • 操作实例

1.打印5至7行

[root@chbo sed.test]# nl test|sed -n '5,7p'

   5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

   6  sync:x:5:0:sync:/sbin:/bin/sync

   7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

2.打印含有root的行

[root@chbo sed.test]# nl test|sed -n '/root/p'

   1  root:x:0:0:root:/root:/bin/bash

3.打印非nologin的行

[root@chboa sed.test]# nl test|sed -n '/nologin$/!p'

   1  root:x:0:0:root:/root:/bin/bash

   6  sync:x:5:0:sync:/sbin:/bin/sync

   7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

   8  halt:x:7:0:halt:/sbin:/sbin/halt

4.在非nologin行前插入新行,内容为:I am chbo_yang.

[root@chbo sed.test]# nl test|sed '/nologin$/!iI am chbo_yang.'

I am chbo_yang.

   1  root:x:0:0:root:/root:/bin/bash

   2  bin:x:1:1:bin:/bin:/sbin/nologin

   3  daemon:x:2:2:daemon:/sbin:/sbin/nologin

   4  adm:x:3:4:adm:/var/adm:/sbin/nologin

   5  lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

I am chbo_yang.

   6  sync:x:5:0:sync:/sbin:/bin/sync

I am chbo_yang.

   7  shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

I am chbo_yang.

   8  halt:x:7:0:halt:/sbin:/sbin/halt

   9  mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

  10  uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

5.将出现的第一个root替换为chbo

[root@chbo sed.test]# nl test|sed -n 's/root/chbo/p'

   1  chbo:x:0:0:root:/root:/bin/bash

6.将全文中的root替换成chbo

[root@chbo sed.test]# nl test|sed -n 's/root/chbo/gp'

   1  chbo:x:0:0:chbo:/chbo:/bin/bash

7.将2至9行替换为I am chbo.

[root@chboa sed.test]# cat -n test|sed '2,9c I am chbo.'

   1  root:x:0:0:root:/root:/bin/bash

I am chbo.

  10  uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

  • 打印本机IP

这个只是随便玩的,方法有很多,组合是任意的。

 目标:在屏幕上显示一个ip地址即可。

 注意:这里主要使用sed命令,grep,cut,awk等命令暂时不做考虑。

  • 目标处理文件:

[root@chboa ~]# awk '{print NR,$0}' /etc/sysconfig/network-scripts/ifcfg-eth0

1 DEVICE=eth0

2 ONBOOT=yes

3 NM_CONTROLLED=yes

4 BOOTPROTO=none

5 IPADDR=192.168.1.199

6 NETMASK=255.255.255.0

7 GATEWAY=192.168.1.1

8 DNS1=8.8.8.8

9 IPV6INIT=no

10 USERCTL=no

11 TYPE=Ethernet

12 HWADDR=00:0c:29:a3:74:d4

注解:cat -n ;nl ;less -N 都可以给文本加行号

[root@chboa ~]# ifconfig eth0

eth0    Link encap:Ethernet  HWaddr 00:0C:29:A3:74:D4

     inet addr:192.168.1.199  Bcast:192.168.1.255  Mask:255.255.255.0

     inet6 addr: fe80::20c:29ff:fea3:74d4/64 Scope:Link

     UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

     RX packets:3463 errors:0 dropped:0 overruns:0 frame:0

     TX packets:1262 errors:0 dropped:0 overruns:0 carrier:0

     collisions:0 txqueuelen:1000

     RX bytes:331487 (323.7 KiB)  TX bytes:194756 (190.1 KiB)

  • 命令处理:

[root@chboa ~]# sed -n 's/IPADDR=//p' /etc/sysconfig/network-scripts/ifcfg-eth0

192.168.1.199

[root@chboa ~]# ifconfig eth0|sed -n 's#^.*addr:\(.*\)  Bcast.*$#\1#gp'

192.168.1.199

  • 拓展

[root@chboa ~]# grep -i ipaddr /etc/sysconfig/network-scripts/ifcfg-eth0|awk -F= '{print $2}'

192.168.1.199

[root@chboa ~]# grep -i ipaddr /etc/sysconfig/network-scripts/ifcfg-eth0|cut -d"=" -f2

192.168.1.199

[root@chboa ~]# ifconfig eth0|awk -F"[ :]" 'NR==2{print $13}'

192.168.1.199

[root@chboa ~]# ifconfig eth0|awk -F"[ :]+" 'NR==2{print $4}'

192.168.1.199

[root@chboa ~]# awk -F= 'NR==5{print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0

192.168.1.199

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:三剑客之sed牛刀小试(二)-创新互联
标题来源:http://ybzwz.com/article/hocgc.html