• sed 找出含有某个字符串的行 注释掉


    1、源文件例子

    [root@node1 ~]# cat /etc/fstab
    
    #
    # /etc/fstab
    # Created by anaconda on Mon Mar  1 18:32:15 2021
    #
    # 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
    #
    /dev/mapper/centos-root /                       xfs     defaults        0 0
    UUID=3fa2b010-61bc-480e-bd49-cb7bee120fe3 /boot                   xfs     defaults        0 0
    /dev/mapper/centos-swap swap                    swap    defaults        0 0
    [root@node1 ~]#

    2、cp一个文件出来  测试修改  fs.txt

    sed -i '/swap/s/^/#/g' fs.txt

    3、diff看一下  ok了

    [root@node1 ~]# diff fs.txt /etc/fstab
    11c11
    < #/dev/mapper/centos-swap swap                    swap    defaults        0 0
    ---
    > /dev/mapper/centos-swap swap                    swap    defaults        0 0
    [root@node1 ~]# cat /etc/fstab

     4、如果要幂等执行 得判断是否被注释过了  如果注释过了 则不执行  不然就执行 然后再判断  这个适合用 until 命令

    until grep swap fs.txt  |grep "#" >/dev/null;do echo "disable swap" && sed -i '/swap/s/^/#/g' fs.txt;done

    5、测试OK  换成实际环境 就是下面的  可以重复执行  

    until grep swap /etc/fstab  |grep "#" >/dev/null;do echo "disable swap" && sed -i '/swap/s/^/#/g' /etc/fstab;done
  • 相关阅读:
    冒泡排序&快速排序
    1252. Cells with Odd Values in a Matrix
    位运算小结
    832. Flipping an Image
    1812. Determine Color of a Chessboard Square
    10、属性、构造函数与析构函数
    09、封装与类成员
    07、面向对象简介
    06、C#异常处理
    03、运算符
  • 原文地址:https://www.cnblogs.com/xlovepython/p/14487619.html
Copyright © 2020-2023  润新知