如何使用yq修改所有匹配指定模式的键对应的值?
使用yq批量修改以
field结尾的键值为false 针对你提供的YAML文件,想要把所有键名以field结尾的字段值改为false,可以使用mikefarah/yq(目前主流的yq版本)执行以下命令:
yq '(.. | select(key | test("field$"))) = false' input.yaml
命令说明:
..:递归遍历YAML结构的所有层级节点,确保不会漏掉嵌套的字段select(key | test("field$")):用正则表达式field$匹配所有以field结尾的键名,筛选出对应的节点= false:将筛选出的所有节点的值统一设置为false
原始YAML(input.yaml):
part1: name: tom some_field: true part2: name: jerry other_field: true
执行命令后输出的YAML:
part1: name: tom some_field: false part2: name: jerry other_field: false
如果需要直接覆盖原文件,可添加-i参数:
yq -i '(.. | select(key | test("field$"))) = false' input.yaml
内容的提问来源于stack exchange,提问作者xis
相关产品推荐
相关产品推荐

