代码之家  ›  专栏  ›  技术社区  ›  King David

sed+删除包含匹配字符串的注释行

  •  0
  • King David  · 技术社区  · 2 年前

    以下内容 sed 命令应删除文件中的注释行- /opt/presto/presto.conf

    sed '/^[[:blank:]]*#/d' /opt/presto/presto.conf
    

    在我们的情况下,我们希望删除带有的评论行 AND case,表示删除还包括字符串的注释行- NOTE

    实例

    more /opt/presto/presto.conf
    #  task.max-worker-threads=16
    #jmx.rmiregistry.port=8091
    #    jmx.rmiserver.port=8092     /NOTE/
    

    预期输出

    #  task.max-worker-threads=16
    #jmx.rmiregistry.port=8091
    

    我们尝试:

     sed '/NOTE/d ; /^[[:blank:]]*#/d'  /opt/presto/presto.conf`
    

    但这上面 sed 命令删除行 注释 以及 comments 线

    1 回复  |  直到 2 年前
        1
  •  0
  •   anubhava    2 年前

    sed 应该对你有用。在这里我们搜索评论标记 # 在行开始处,后面跟着 NOTE 行中的任何位置:

    sed '/^[[:blank:]]*#.*NOTE/d' file
    
    #  task.max-worker-threads=16
    #jmx.rmiregistry.port=8091
    

    或者这个:

    sed '/NOTE/ {/^[[:blank:]]*#/d;}' file
    
    推荐文章