文本处理工具sed习题

1、删除/etc/grub2.cfg文件中所有以空白开头的行行首空白字符
[root@wzc date]# sed -n 's/^[[:space:]]\+//p' /etc/grub2.cfg
load_env
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
set default="${saved_entry}"
......................
2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
[root@wzc date]# sed -n 's/^#[[:space:]]\+//p' /etc/fstab
/etc/fstab
Created by anaconda on Mon Aug  1 10:01:43 2016
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
3、在/root/install.log每一行行首增加#号
[root@localhost ~]# sed -n 's/^/#/p' /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:/sbin/nologin
#lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
#sync:x:5:0:sync:/sbin:/bin/sync
.....................................只截部分
4、在/etc/fstab文件中不以#开头的行的行首增加#号
[root@wzc date]# sed -n 's/^[^#]/#&/p' /etc/fstab
#UUID=ef85cb95-3017-4d46-938d-75430f428ee8 /                       xfs     defaults        0 0
#UUID=fe2e4ff9-2cf4-4c4a-bd35-bea53d54c8c4 /boot                   xfs     defaults        0 0
#UUID=6102e0e1-a1a5-40bb-8287-3b2d356e7d56 /date                   xfs     defaults        0 0
#UUID=0d6263e8-055d-4263-965d-f6447c6f8655 swap                    swap    defaults        0 0
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
    取目录名:
[root@wzc date]# echo "/etc/fst/sd/" | sed -r  's#[^/]+/?$##'
/etc/fst/
    取基名:
[root@wzc date]# echo "/etc/fst/sd" | sed  's@.*\<@@'
sd
6、利用sed 取出ifconfig命令中本机的IPv4地址
[root@wzc date]# ifconfig |sed -n 2p |sed -e 's/^.*inet '// -e 's/ net.*$//'
10.1.0.188
7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
[root@wzc Packages]# ls |sed -r 's@.*\.(.*)\.rpm$@\1@' | sort | uniq -c
   2000 i686
   2938 noarch
      1 TRANS.TBL
   4069 x86_64

原创文章,作者:RecallWzc,如若转载,请注明出处:http://www.178linux.com/33259