sed命令行编辑器详述(2)

#UUID=f4d977bb-af76-4617-b07f-9c70ae42a056 /                       ext4    defaults        1 1

#UUID=7907abdd-41cd-4609-8392-80e4a88c5b4c /boot                   ext4    defaults        1 2

#UUID=50054489-14c8-4e49-a912-2ff368371653 /testdir                ext4    defaults        1 2

#UUID=d9f41da6-9df2-410f-8074-500425b26a3d 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@CentOS6 ~]# 

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

[root@CentOS6 ~]# echo /etc/sysconfig/network-scripts/ | sed 's@^\(.*\/\)\([^/]\+\/\?\)@\1@'    #取出目录名

/etc/sysconfig/

[root@CentOS6 ~]# echo /etc/sysconfig/network-scripts/ | sed 's@^\(.*\/\)\([^/]\+\/\?\)@\2@'    #取出基名

network-scripts/

[root@CentOS6 ~]# 

6.利用sed 取出ifconfig命令中本机的IPv4地址

[root@CentOS7 ~]# ifconfig | sed -n '/\<inet\>/p' | sed -r 's@inet (([[:digit:]]+\.){3}[[:digit:]]+).*@\1@'

        10.1.253.23

        127.0.0.1

        192.168.122.1

[root@CentOS7 ~]# 

7.统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数

[root@CentOS7 Packages]# df -lh    #查看光盘是否挂载

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda2        50G  4.1G   46G   9% /

devtmpfs        475M     0  475M   0% /dev

tmpfs           489M   84K  489M   1% /dev/shm

tmpfs           489M  7.1M  482M   2% /run

tmpfs           489M     0  489M   0% /sys/fs/cgroup

/dev/sda5        20G   61M   20G   1% /testdir

/dev/sda1       197M  139M   59M  71% /boot

tmpfs            98M   20K   98M   1% /run/user/42

tmpfs            98M     0   98M   0% /run/user/0

/dev/sr0        7.3G  7.3G     0 100% /media/cdrom

[root@CentOS7 Packages]# ls | sed -r 's@.*\.([^.]+)\.rpm$@\1@' | sort | uniq -c    #取出倒数第二个字段的重复次数

   2000 i686

   2938 noarch

      1 TRANS.TBL

   4069 x86_64

[root@CentOS7 Packages]#

高级编辑命令:

h:把模式空间中的内容覆盖至保持空间中

H:把模式空间中的内容追加至保持空间中

g:把保持空间中的内容覆盖至模式空间中

G:把保持空间中的内容追加至模式空间中

x:把模式空间中的内容与保持空间中的内容互换

n:覆盖读取匹配到的行的下一行至模式空间中

N:追加读取匹配到的行的下一行至模式空间中

d:删除模式空间中的行

D:删除多行模式空间中的所有行

示例:

1.显示文件偶数行

[root@CentOS7 Packages]# sed -n 'n;p' /etc/fstab 

#    This is two line.

#

# Created by anaconda on Thu Jul 21 12:06:23 2016

# Accessible filesystems, by reference, are maintained under '/dev/disk'

#

UUID=1b0c5c77-c343-4139-9533-0ef66ffe5d39 /boot                   xfs     defaults        0 0

UUID=6cfc5ecc-625f-4a4c-936f-95e4bab93dd6 swap                    swap    defaults        0 0

[root@CentOS7 Packages]# 

2.文件逆序显示

[root@CentOS7 Packages]# sed '1!G;h;$!d' /etc/fstab 

UUID=6cfc5ecc-625f-4a4c-936f-95e4bab93dd6 swap                    swap    defaults        0 0

UUID=e70e4b66-c716-4d00-a483-4771fea4a9c1 /testdir                xfs     defaults        0 0

UUID=1b0c5c77-c343-4139-9533-0ef66ffe5d39 /boot                   xfs     defaults        0 0

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14085.html