有没有一个工具可以扁平化 yaml 结构,如下所示:
foo:
bar:
baz: true
进入这个:
foo.bar.baz = true
不确定这个语法名称是什么
上下文:我需要 hcl,设置很多值,如下所示:
set {
name = "foo.bar.baz"
value = false
}
这是针对terraform中的helm-provider,不能直接使用json或yaml,必须一一设置你想要更改的属性(我需要禁用很多东西来检查为什么它不起作用)。
使用Andrey Kislyuk
yq
获取输入文档中布尔值的所有路径,对于每个路径,用点连接路径元素,然后输出每个点路径以及在该路径中找到的值。输入文档示例:
结果输出:
enabled
仅获取以具有布尔值的名为 key 结尾的路径true
(如其他地方的示例所示):找不到任何东西,所以我自己做'__')
https://github.com/kokizzu/yamlflatten