Sed及Vim作业题:
1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符
[root@localhost 7 ~]# sed -r 's/^[[:space:]]+//' /etc/grub2.cfg
2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符
[root@localhost test]# sed 's/^#[[:space:]]\+//' /etc/fstab //此符合题目要求 [root@localhost test]# sed -r 's/^(#|#[[:space:]]+)//' /etc/fstab //此命令只要有“#”就删除
3、在/root/install.log每一行行首增加#号
[root@localhost test]# sed 's/^/#/' /root/install.log
4、在/etc/fstab文件中不以#开头的行的行首增加#号
[root@localhost test]# sed 's/^[^#]/#&/' fstab
5、处理/etc/fstab路径,使用sed命令取出其目录名和基名
[root@localhost test]# echo "/etc/sysconfig/network-scripts/" | sed -r 's@(.*/)([^/]+/?)$@\1@' //此处后向引用中"\1"为目录"\2"为基名,需手动更改
6、利用sed 取出ifconfig命令中本机的IPv4地址
[root@localhost test]# ifconfig | sed '2!d' | sed -r 's@.*inet.addr:(.*)B.*@\1@' //仅用于centos 6
7、统计centos安装光盘中Package目录下的所有rpm文件的以.分隔倒数第二个字段的重复次数
[root@localhost test]# ls /mnt/Packages/* | sed -r 's@.*\.(.*)\.rpm$@\1@' | sort | uniq -c
8、复制etc/rc.d/init.d/functions文件至/tmp目录;替换/tmp/functions文件中的/etc/sysc onfi g/in it为/var/log;
[root@CentOS 7 ~]# cp /etc/rc.d/init.d/functions /tmp [root@CentOS 7 ~]# vim /tmp/functions
解析:
在命令行中输入下方图片最后一行命令,转换原有的/etc/sysconfig/init为/var/log
符号“%”:表示地址范围为全文
s@@@:表示查找内容替换(其中符号"@“可以使用任意字符,但三个必须一致)
g :修饰符,表示全局替换
9、删除/tmp/fstab文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;
[root@CentOS 7 ~]# vim /tmp/fstab
解析:
在命令行中输入下方图片最后一行命令,把原有的符号“#”开头紧跟至少一个空格的行的行首的#号删除掉。(注意:只删除“#”,不删除空格)
符号“%”:表示地址范围为全文
s@@@:表示查找内容替换(其中符号"@“可以使用任意字符,但三个必须一致)
g :修饰符,表示全局替换
末行模式内输入命令: ( :%s@^\(#\)[[:space:]]\+@ @g )
其中:第一个符号“@”和第二个符号“@”之间的内容为模式(pattern),支持使用正则表达式,来对需要查找的内容进行模式匹配
第二个符号“@”和第三个符号“@”之间的内容有个空格,表示将之间模糊匹配到的内容替换为一个空格(因为题目要求只删除符号“#”,原有的空格还在,这里把符号“#”和其后面的空格替换为一个空格,就满足题目要求了)
原创文章,作者:Lii,如若转载,请注明出处:http://www.178linux.com/31909