1

我有一个这样的 YAML 文件 file.yaml:

category: fruits
some_dummy_key: value

现在我想使用 Mike farah 的 yq v4(具体来说是 4.5.1 版)https://github.com/mikefarah/yq来追加details密钥,其中有一个名称列表,颜色应该如下所示:

category: fruits
somme_dummy_key: value
details:
- name: banana
  color: yellow
- name : apple
  color: red  

在 yq 版本中,我知道我们可以做一个

./bin/yq write -i file.yaml details.[0].name banana

./bin/yq write -i file.yaml details.[0].color yellow

等等。但是我如何使用 yq v4 的 eval 命令来做到这一点。我真的很感激这方面的任何帮助。

4

1 回答 1

4

这是如何做到的。您将必须创建一个名为 details 的新根值并分配参数。

cbiswal@XXXXX:~$ cat tet.yaml
category: fruits
somme_dummy_key: value
cbiswal@XXXXX:~$ yq e '."details"=[{"name":"mango","color":"yellow"},{"name":"apple","color":"red"}]' tet.yaml
category: fruits
somme_dummy_key: value
details:
  - name: mango
    color: yellow
  - name: apple
    color: red

注意:

$ yq --version
yq version 4.7.0
于 2021-04-24T23:33:52.387 回答