使用shell脚本删除yaml文件中的特定块

yhived7q  于 11个月前  发布在  Shell
关注(0)|答案(1)|浏览(159)

需要从下面的yml文件中删除预订块

testing:
     working:
       - aaa: daa
       - bbb: rrr
     booking:
       empty_book:
         test_list:
           - ccc: tt
           - ddd: ttt
     maintaining:
       - eee: dhhaa
       - fff: ffdaa

尝试使用sed和awk命令删除预订块,但未获得预期结果,如下所示。
查找以下输出

testing:
     working:
       - aaa: daa
       - bbb: rrr
     maintaining:
       - eee: dhhaa
       - fff: ffdaa
vsikbqxv

vsikbqxv1#

您可以使用yq工具来处理YAML文件-它是专门为此工作而构建的:

$ yq 'del(.testing.booking)' file.yml
testing:
  working:
    - aaa: daa
    - bbb: rrr
  maintaining:
    - eee: dhhaa
    - fff: ffdaa

要就地更新文件(不可恢复地恢复原始文件!),运行yq -i …

相关问题