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)
上一篇 2016-08-09 11:48
下一篇 2016-08-09 16:04

相关推荐

  • nginx配置文件中文文档

    Nginx配置参数中文说明。 #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数。worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]error_log /var/log/nginx/error…

    Linux干货 2017-08-08
  • 马哥教育网络班21期+第12周课程练习

    httpd学习前知识必备: I/O类型 同步和异步 synchronous asynchronous  关注的是消息通知机制,如何通知调用者,站在被调用者的角度 同步:调用发出后不会立即返回,一旦返回即是最终结果 异步:调用发出后会立即返回消息,但不是最终结果,被调用者通过状态,通知机制,或回调函数处理结果 阻塞和非阻塞 block nonbloc…

    Linux干货 2016-08-15
  • 16个很有用的在线工具

    1. ExplainShell.com 命令解释 对于Linux用户来说每天都会写各种命令和脚本,那么你可以使用这个网站工具来查看命令式如何工作的,这样可以避免不必要的错误出现;也是一个很好的学习命令的方式 2. BashrcGenerator.com 定制个性命令提示符 简单说就是个性化生成命令提示符,可将生成的代码…

    Linux干货 2015-03-13
  • Linux Service and Security(Part 1)

    一、知识整理 1、不安全的传统协议: telnet、FTP、POP3等:不安全的密码; http、smtp、NFS等:不安全信息; Ldap、NIS、rsh等:不安全验证。 设计基本原则: 使用成熟的安全系统; 以小人之心度输入数据; 外部系统是不安全的; 最小授权; 减少外部接口; 缺省使用安全模式; 在入口处检查; 安全不是似是而非; 从管理上保护好系统…

    Linux干货 2016-10-09
  • Linux磁盘、文件系统管理

    对Linux而言,其哲学思想之一就是一切皆文件,因此Linux之上所有设备的操作都是通过文件接口来实现的,也就是说在访问设备的时候就如同访问一个文件一样,因为他们使用的都是文件系统接口。  设备也分种类,如:     1、块设备:block 其存取单位是“块”,如硬盘    &n…

    Linux干货 2016-08-29
  • ​ 基于Sentinel实现redis主从自动切换

    Sentinel(哨兵)是用于监控redis集群中Master状态的工具,它可以实现对redis的监控、通知、自动故障转移。 Sentinel作用: Master状态检测 当被监控的某个 Redis Master异常无法连接时 Sentinel 可以向系统管理员发送通知, 也可以通过 API 向其他程序发送通知,并且进行Master-Slave切换,将其中一…

    Linux干货 2016-02-14