Sed及Vim作业

  Sed及Vim作业题:

    1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符

   [root@localhost 7 ~]# sed -r  's/^[[:space:]]+//' /etc/grub2.cfg

    blob.png

    2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符

   [root@localhost test]# sed 's/^#[[:space:]]\+//' /etc/fstab   //此符合题目要求
   [root@localhost test]# sed -r 's/^(#|#[[:space:]]+)//' /etc/fstab //此命令只要有“#”就删除

   blob.png

blob.png

    3、在/root/install.log每一行行首增加#号

   [root@localhost test]# sed 's/^/#/' /root/install.log

    blob.png

    4、在/etc/fstab文件中不以#开头的行的行首增加#号

   [root@localhost test]# sed 's/^[^#]/#&/' fstab

    blob.png

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

[root@localhost test]# echo "/etc/sysconfig/network-scripts/" | sed -r 's@(.*/)([^/]+/?)$@\1@'
        //此处后向引用中"\1"为目录"\2"为基名,需手动更改

    blob.png

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

[root@localhost test]# ifconfig | sed '2!d' | sed  -r 's@.*inet.addr:(.*)B.*@\1@'  
       //仅用于centos 6

blob.png

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

[root@localhost test]# ls /mnt/Packages/* | sed -r 's@.*\.(.*)\.rpm$@\1@' | sort | uniq -c

blob.png

    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

      0{8S286)CT]@TW%UV`BBE5U.png

       解析:

        在命令行中输入下方图片最后一行命令,转换原有的/etc/sysconfig/init为/var/log

        符号“%”:表示地址范围为全文

         s@@@:表示查找内容替换(其中符号"@“可以使用任意字符,但三个必须一致)

         g :修饰符,表示全局替换

       

    9、删除/tmp/fstab文件中所有以#开头,且#后面至少有一个空白字符的行的行首的#号;

[root@CentOS 7 ~]# vim /tmp/fstab

         blob.png

    解析:

          在命令行中输入下方图片最后一行命令,把原有的符号“#”开头紧跟至少一个空格的行的行首的#号删除掉。(注意:只删除“#”,不删除空格)

    符号“%”:表示地址范围为全文

     s@@@:表示查找内容替换(其中符号"@“可以使用任意字符,但三个必须一致)

     g :修饰符,表示全局替换

     末行模式内输入命令: (  :%s@^\(#\)[[:space:]]\+@ @g )

        其中:第一个符号“@”和第二个符号“@”之间的内容为模式(pattern),支持使用正则表达式,来对需要查找的内容进行模式匹配

        第二个符号“@”和第三个符号“@”之间的内容有个空格,表示将之间模糊匹配到的内容替换为一个空格(因为题目要求只删除符号“#”,原有的空格还在,这里把符号“#”和其后面的空格替换为一个空格,就满足题目要求了)

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

(0)
LiiLii
上一篇 2016-08-09 11:48
下一篇 2016-08-09 16:04

相关推荐

  • n25 第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   2、取出最后登录到当前系统的用户的相关信息。   3、取出当前系统上被用户当作其默认shell的最多的那个shell。   4、将/etc/passwd中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxus…

    Linux干货 2016-12-20
  • python写一个通讯录之step by step

    编写过程:     第一步:手动代码堆积         第二步:函数复用         第三步:数据持久化之数据保存         第四步:数据持久化之数据读取       &nbsp…

    Linux干货 2015-03-26
  • nginx学习

    nginx    nginx的核心配置项:        Core functionality:核心配置,Glob配置段            daemon:是否开启为守护进程        &nbs…

    2017-05-08
  • 缓存需知

    Edit Web缓存核心技术点需知 5.1 HTTP首部控制 5.2 基于新鲜度检测机制: 2.1 特征1:时间局部性 2.2 特征2:空间局部性 2.3 缓存的优点 2.4 哪类数据应该被缓存 2.5 哪类数据可缓存但不应该被缓存 2.6 缓存命中率决定缓存有效性 2.7 缓存数据生命周期 2.8 缓存处理步骤 2.9 缓存和普通数据读取的区别 1. 完整…

    Linux干货 2015-02-22
  • CentOS程序安装的3种方式{ 源码包安装 | rpm包安装 | yum安装;}

    CentOS程序安装的3种方式{ 源码包安装 | rpm包安装 | yum安装;} CentOS软件安装主要由3种方式,第一种是源码包安装,需要从网站下载并解压之后通过手动编译的方式安装,过程相对比较复杂;第二种是rpm包安装,通过rmp这个包管理器实现程序的安装、升级、卸载等操作,rpm包管理器是RPM Package Manager的简称,功能非常强大,…

    Linux干货 2016-08-24
  • 11. vim备查の小手札

    三种模式 命令模式(默认)      command mode:移动光标,剪切/粘贴文本 插入(编辑)模式         edit mode:修改文本 扩展命令模式 extend…

    Linux干货 2016-08-18