You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用yq为YAML文件中所有replace操作的value字段添加前缀

批量给YAML中replace操作的value字段添加前缀

没问题,用yq就能轻松搞定这个批量修改需求~如果你用的是mikefarah/yq v4+(目前最流行的yq版本),直接用下面这条命令就行:

yq '(.[] | select(.op == "replace") | .value) |= "prefix-" + .' your-file.yaml

命令拆解说明:

  • .[]:遍历YAML数组里的每一项元素
  • select(.op == "replace"):精准筛选出所有op字段为replace的操作项
  • .value:定位到这些项的value字段
  • |= "prefix-" + .:把原value的内容前面加上指定前缀(这里是prefix-),再赋值回原字段

实际效果示例:

假设你的原始YAML内容是:

- op: replace
  path: /data/app1
  value: appone
- op: replace
  path: /data/app2
  value: apptwo
- op: add
  path: /data/extra
  value: skipthis

执行命令后,输出会变成:

- op: replace
  path: /data/app1
  value: prefix-appone
- op: replace
  path: /data/app2
  value: prefix-apptwo
- op: add
  path: /data/extra
  value: skipthis

如果需要直接修改原文件(不只是打印到控制台),加上-i参数即可:

yq -i '(.[] | select(.op == "replace") | .value) |= "prefix-" + .' your-file.yaml

注:如果你的yq是v3及更早版本,语法会有差异,建议升级到v4版本获得更顺畅的使用体验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:12:31