You need to enable JavaScript to run this app. 如何使用yq 4更新YAML数组中指定id属性条目的version字段?
优惠活动
大模型
产品
解决方案
定价
更多

如何使用yq 4更新YAML数组中指定id属性条目的version字段?

操作方法

你使用的是yq v4版本,直接用select筛选匹配的数组元素后更新对应字段即可,操作命令如下:

# 测试修改效果(不会改动原文件),将VERSION替换为你要更新的目标版本号,yaml文件名替换为你实际的文件名
yq e '.jobs.my-job.steps[] |= (select(.id == "step2") | .with.version = VERSION)' 你的配置文件名.yaml

# 确认修改正确后,加 -i 参数直接写入原文件,示例中把版本更新为2.1.0
yq e '.jobs.my-job.steps[] |= (select(.id == "step2") | .with.version = "2.1.0")' action.yaml -i

命令说明

  • e 是yq v4版本的表达式求值参数,4.18及之后版本可以省略,你使用的4.3.1版本必须保留该参数
  • .jobs.my-job.steps[] 遍历steps下的所有步骤数组元素
  • |= 是更新赋值操作符,会把左侧匹配到的元素应用右侧的表达式逻辑
  • select(.id == "step2") 筛选条件,仅保留id字段值为step2的步骤元素
  • .with.version = "2.1.0" 给筛选出的元素的with下的version字段赋值为新的版本号,若版本号为字符串类型需要加引号,数值类型可省略引号
  • -i 为原位修改参数,添加后会直接修改原文件,不加则仅在终端输出修改后的内容用于校验

内容的提问来源于stack exchange,提问作者Joel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 18:45:03