如何用yq将多个YAML文件内容追加到root.yml的myList列表?
使用yq批量将YAML文件内容追加到列表
针对你的需求,用 mikefarah/yq v4+(目前最常用的yq版本)可以轻松实现从文件加载内容并追加到root.yml的myList列表中,无需硬编码。
指定单个/多个文件的场景
如果明确知道要追加的文件名(比如1.yml、2.yml),直接用以下命令:
yq eval '.myList += [load("1.yml"), load("2.yml")]' root.yml
.myList +=:表示向myList数组追加新元素load("文件名"):读取指定YAML文件的完整内容,将其作为单个元素加入数组- 执行后控制台会直接输出合并后的完整YAML内容
批量匹配文件的场景
如果要处理文件夹中除root.yml外的所有YAML文件,用通配符匹配更高效:
yq eval '.myList += load_range("*.yml" | select(. != "root.yml"))' root.yml
load_range("匹配规则"):批量加载所有符合规则的YAML文件,每个文件内容自动作为数组的一个元素select(. != "root.yml"):排除root.yml本身,避免把它也加入目标列表
执行结果示例
运行命令后,控制台会输出你预期的格式:
keyA: valA keyB: valB myList: - project_id: abc description: xyz - project_id: cba description: zyx
内容的提问来源于stack exchange,提问作者SoT
相关产品推荐
相关产品推荐

