【发布时间】:2022-01-26 16:26:33
【问题描述】:
我有一个 YAML 文件示例,它在“容器”列表和每个容器的“网络”列表中包含可变数量的元素。
lab_name: practica0
containers:
- name: vm1
image: rys
networks:
- 1
- name: router
image: rys
networks:
- 1
- 2
- name: vm2
image: rys
networks:
- 2
我想遍历“容器”和“网络”数组来获取所有值,但我不知道具体该怎么做。我尝试使用 for 循环和 shell 变量,例如 yq eval '.containers[$i].name' example.yaml,但它不起作用。我尝试将$i 括在双引号之间并按照此处https://github.com/mikefarah/yq/issues/468#issuecomment-752114840 的指定转义它们,但仍然没有运气。顺便说一句,我正在使用 Go yq,我必须使用 Almquist Shell 而不是 bash,所以我不能使用像 readarray 这样的东西。谢谢
编辑:例如,我想要的输出就像这样简单:
vm1
rys
1
router
rys
1
2
vm2
rys
2
【问题讨论】:
-
您的 yaml 缩进不正确,能否请您 edit 解决这个问题?
-
糟糕,抱歉,我相信它现在已修复。谢谢
-
是的,您能否也添加所需的输出?
-
完成,我添加了一个非常简单的示例来说明我想要的。
-
所以你想要原始字符串输出,没有 yaml?