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

如何用yq将YAML文档数组项拆分为独立YAML文档?

解决YAML数组元素转独立文档并添加分隔符的问题

你可以通过以下两种方式实现需求:

1. 纯yq方案(适配mikefarah/yq v4+版本)

利用reduce函数遍历数组中的每个元素,将其转换为YAML字符串,并在非第一个元素前自动插入---分隔符:

yq eval 'reduce .items[] as $item (""; . + (if . != "" then "---\n" else "") + ($item | to_yaml))' test.yaml

2. 结合awk的简化方案

先用yq提取所有数组元素,再通过awk识别每个元素的起始行(无缩进的行),在除首个元素外的每个元素前添加---:

yq eval '.items[]' test.yaml | awk '/^[^ ]/ && NR>1 {print "---"} {print}'

两种方案都能输出你期望的结果:每个子文档独立,并用---分隔。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 03:17:25