如何解决使用锚父级更新数组列表中的嵌套条目
给定一个 yaml 文件:
Organizations:
- &org-o1
O_Endpoints:
- o1.address:1234
- &org-p1
Anchors:
- Host: p1.address
- &org-o2
O_Endpoints:
- o2.address:2345
我想更新 Organizations.[&org-o1].O_Endpoints
中的端口值。
我可以使用此命令进行更改:
yq eval -i '.Organizations.[0].O_Endpoints = "o1.address:5555" $file
但是我不能总是预测 org-o1
的位置 [x],所以这个命令是不够的。
我也可以使用这个命令来更新所有数组条目的 O_Endpoints
值:
yq eval -i '.Organizations.[].O_Endpoints[0] = "o1.address:5555"' $File
但是,此命令会将 O_Endpoints
添加到当前没有它们的那些条目中。我只想更新现有条目,而不是添加新条目。
如果 org-o1 不是锚点,我可以使用以下命令更新它而不知道它的确切位置:
L=$(yq eval '.Organizations.[] | select(. == "org-o1") | path | .[-1]' $File) #get Line Number
L=$L yq eval -i '.Organizations[env(L)].O_Endpoints = "o1.address:5555"' $File
我可以对路径包含数组中的锚点的条目做类似的事情吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。