如何使用yq将指定YAML内容转换为目标CSV格式?
将嵌套YAML列表转换为扁平化CSV格式
直接使用yq命令即可完成转换,无需额外工具。针对你的includelist.yml文件,执行以下命令:
yq -r '(.ProductLine.ADO_FeedsList[] | .ProjectName as $pn | .FeedsName[] | [$pn, .] | @csv)' includelist.yml
命令说明:
.ProductLine.ADO_FeedsList[]:遍历每个YAML文档中ProductLine下的ADO_FeedsList数组元素.ProjectName as $pn:将当前项目的ProjectName存入变量$pn,方便后续复用.FeedsName[]:遍历当前项目下的所有FeedsName元素[$pn, .]:将项目名与对应的Feed名组合成一个数组@csv:将数组格式化为标准CSV行(自动处理特殊字符,若你的数据无特殊字符,也可改用"$pn,\."直接拼接)
执行后会输出你需要的格式:
IT,test IT,test2 organization,hello organization,world Fin,good Fin,aaaa organization,bbb organization,ccc
注:你示例中的orginazation是拼写错误,上述命令会保留原YAML中的正确拼写organization;若需要统一修正拼写,可在命令中添加替换逻辑:
yq -r '(.ProductLine.ADO_FeedsList[] | .ProjectName as $pn | .FeedsName[] | [$pn | sub("organization", "orginazation"), .] | @csv)' includelist.yml
内容的提问来源于stack exchange,提问作者Clair
相关产品推荐
相关产品推荐

