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

如何用yq替换YAML文件中匹配正则的列表值?

使用yq替换YAML中匹配正则的services列表项

针对你的需求,使用mikefarah/yq v4+(当前主流版本)可直接实现,命令如下:

yq eval '.applications[].services |= map(select(test("cups-stage-service.*")) |= "cups-stage-blue-service")' your-file.yaml

命令解析:

  • .applications[]:遍历applications数组中的每一个应用对象
  • .services |= map(...):对每个应用的services数组执行映射处理
  • select(test("cups-stage-service.*")) |= "cups-stage-blue-service":筛选出匹配正则表达式cups-stage-service.*的元素,将其替换为cups-stage-blue-service

效果示例:

若原services列表为:

services:
  - cups-stage-service
  - cups-stage-service-v2
  - dyn-service

执行命令后会变为:

services:
  - cups-stage-blue-service
  - cups-stage-blue-service
  - dyn-service

如果需要直接覆盖修改原文件,添加-i参数即可:

yq eval -i '.applications[].services |= map(select(test("cups-stage-service.*")) |= "cups-stage-blue-service")' your-file.yaml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 21:13:11