微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据其内容从文件中删除部分

如何解决根据其内容从文件中删除部分

如何使用 bash 删除以下文件中包含 config B2 的配置部分?使用 sedawk 或类似的任何快速解决方案?如果有帮助,不同的部分用空行分隔。

输入文件

section X
    config A1
    config A2
    config A3

section Y
    config A1
    config B2
    config A3

section Z
    config C1
    config C2
    config A3

预期的输出文件

section X
    option A1
    option A2
    option A3

section Z
    option C1
    option C2
    option C3

解决方法

使用awk:

awk 'BEGIN { RS="section" } $0 !~ /config B2/ { print RS$0 }' file

在开始块中将记录分隔符设置为“section”。然后当记录不包含“config B2”时,打印记录分隔符后跟记录。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。