sed,vim练习

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

    [root@localhost ~]# sed -r 's@^[[:space:]]+@@' /etc/grub2.cfg
  • 2 、删除/etc/fstab 文件中所有以#开头,后面至少跟一个空白字符的行的行首的# 和空白字符

    [root@localhost ~]# sed -r 's@^#[[:space:]]+@@' /etc/fstab
  • 3 、在/etc/fstab 文件中不以# 开头的行的行首增加#号

    [root@localhost ~]# sed -r 's@^[^#]@#&@' /etc/fstab 
    
      #
      # /etc/fstab
      # Created by anaconda on Mon Jul 25 12:04:17 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
      #
      #UUID=f4406f6a-e495-45a0-a85e-3b059c0d3130 /                       xfs     defaults        0 0
      #UUID=7c25120e-2371-413d-b584-fdd695b96702 /boot                   xfs     defaults        0 0
      #UUID=19470291-724c-4f01-b6e1-7109ad22be1b /usr                    xfs     defaults        0 0
      #UUID=c3460309-9e8c-4037-8684-4c6bdcabbacb swap                    swap    defaults        0 0
  • 4 、处理/etc/fstab 路径, 使用sed 命令取出其目录名和基名

    [root@localhost ~]# echo "/etc/fstab" |sed -r 's@/.*/([^/]+/?)$@\1@'
      fstab  
      [root@localhost ~]# echo "/etc/fstab" |sed -r 's@(/.*/)[^/]+/?$@\1@'
      /etc/
  • 5 、利用sed 取出ifconfig 命令中本机的IPv4 地址

    [root@localhost ~]# ifconfig |sed -n 2p|sed 's@netmask.*@@'|sed 's@inet@@'   10.1.252.131
  • 6 、统计centos 安装光盘中Package 目录下的所有rpm 文件的以.分隔倒数第二个字段的重复次数

    [root@localhost Packages]# ls *.rpm | sed -r 's@.*\.(.*).rpm@\1@'|sort|uniq -c     1912 i686     2895 noarch     3845 x86_64
  • 7 、复制/etc/profile 至/tmp/ 目录,用查找替换命令删除 /tmp/profile 文件中的行首的空白字符

:%s@^[[:space:]]\+@@
  • 8、复制/etc/rc.d/init.d/functions 文件至/tmp 目录,用查找替换命令为/tmp/functions 的每行开头为空白字符的行的 行首添加一个#号

    :%s@^[[:space:]]\+@#&@

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