我有一个此类的 YAML 文件 file.yaml:
category: fruits
some_dummy_key: value
Run Code Online (Sandbox Code Playgroud)
现在我想使用 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
Run Code Online (Sandbox Code Playgroud)
在 yq 版本中,我知道我们可以做一个
./bin/yq write -i file.yaml details.[0].name banana
./bin/yq write -i file.yaml details.[0].color yellow
Run Code Online (Sandbox Code Playgroud)
等等。但是我该如何使用 yq v4 的 eval 命令来做到这一点。我真的很感谢对此的任何帮助。
这是如何做到的。您必须创建一个名为“详细信息”的新根值并分配参数。
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
Run Code Online (Sandbox Code Playgroud)
注意:
$ yq --version
yq version 4.7.0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9014 次 |
| 最近记录: |