linux入门实验手册7 sed命令

  1. 输出时保留原格式 用双引号

    userinfo=`who`
    echo $userinfo
    echo "$userinfo"

  2. echo a b c| { read x y z ; echo $x $y $z; } 对

    echo a b c| { read x y z ; echo $x $y $z;} 错,最后的}前要有空格
    echo a b c| { read x y z ; echo $x $y $z;exit;} 对,exit后面不用空格
    echo a b c| {read x y z ; echo $x $y $z;exit;} 错 read前要有空格

  3. busybox
  4. 查找/etc⽬录下所有⽤户都没有写权限的⽂件

    find /etc -not -perm /222 要善用not

  5. 查找/etc/init.d⽬录下,所有⽤户都有执⾏权限,且其它⽤户有写权限的⽂件

    find /etc/init.d -perm -113
    -MODE:每一类对象都必须同时拥有指定权限 其他权限有无不关注

  6. 利⽤sed 取出ifconfig ens33命令中本机的IPv4地址

    ifconfig ens33 |sed -r '2!d; s@(.inet )(.)( netmask.*)@\2@'
    ifconfig 后面直接跟具体网卡;2!d 打印第二行;用冒号可以隔开两个命令,同时依次执行

  7. 删除/etc/fstab⽂件中所有以#开头,后⾯⾄少跟⼀个空⽩字符的⾏的⾏⾸的#和空⽩字符

    sed -r 's/^#[[:blank:]]+//' /etc/fstab
    sed -r 's/^#[[:blank:]]+//'g /etc/fstab 加了一个g表示全局替换,因为行中间可能也有符合条件的
    cat /etc/fstab sed -r 's/^#[[:blank:]]+//'
    [:blank:] 空白字符(空格和制表符) [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)
    替换为空的删除思想

  8. 显⽰pets⽂件中第2⾏及后⾯的1⾏

    sed -n '2,+1p' pets

  9. 在pets⽂件的第2⾏的下⼀⾏添加hello

    sed '2ahello' pets
    a []text 在指定行后面追加文本,支持使用\n实现多行追加 [] 可有可无

  10. 在第2⾏后读⼊test.txt⽂件

    seq 1 5|sed '2r test.txt' seq别写成sed了

  11. 删除centos7系统/etc/grub2.cfg⽂件中所有以空⽩开头的⾏⾏⾸的空⽩字符

    sed -r 's/^[[:blank:]]+//' /etc/grub2.cfg
    sed -r 's/(^[[:blank:]]+)(.*)/\2/' /etc/grub2.cfg

  12. 在centos6系统/root/install.log每⼀⾏⾏⾸增加#号

    sed -r 's/.*/#&/' /root/install.log
    注意这里的 " & " 符号,如果没有 “&”,就会直接将匹配到的字符串替换掉
    sed 's/^/添加的头部&/g'      #在所有行首添加
    sed 's/$/&添加的尾部/g'      #在所有行末添加

  13. 在/etc/fstab⽂件中不以#开头的⾏的⾏⾸增加#号

    sed -r 's@^[^#]@#&@p' /etc/fstab
    以上两题只需注重每行的行首替换即可,有特殊行首格式则写出格式,无需写出具体每行其他内容正则

  14. 处理/etc/fstab路径,使⽤sed命令取出其⽬录名和基名

    echo "/etc/fstab" |sed -r 's@^(./)([^/]+/?)$@\1@'
    echo "/etc/fstab" |sed -r 's@^(.
    /)([^/]+/?)$@\2@'
    echo "/etc/fstab" |sed -r 's#(/.*/)([^/]+/?)$#\1#'
    路径最后可能是文件夹,比如/etc/fstab/sd/,所有最后可能有/

上一篇:ansible常用模块


下一篇:rhel7.5调整lvm分区配置挂载无法启动解决方法记录