下面是一个示例yaml文件来解释这个问题:
hello: null
---
hello: null
在yaml文件中有两个同名的键,用“---”分隔。两者需要不同的价值观。
我在bash脚本中使用yq来设置某些键的值。我目前正在对一个没有“---”分隔符的yaml文件使用这个命令,它可以工作:
yq -i -y ".hello=\"world\"" ./$PATH
但是当我尝试用“---”索引文件中的一个键时,使用:
yq -i -y ".[0].hello=\"world\"" ./$PATH
我得到这个错误:
jq: error (at <stdin>:1): Cannot index object with number
jq: error (at <stdin>:2): Cannot index object with number
我确信语法是不正确的,但我似乎不能让它工作或找到任何文档对这个特定的问题,我面临的。
1条答案
按热度按时间ix0qys7i1#
请指定您正在使用的yq的which implementation。
对于mikefarah/yq,您可以使用
document_index
(或di
)到reference into a specific document:对于kislyuk/yq,可以使用
--slurp
(或-s
)标志将文档收集到一个数组中,然后可以索引到该数组中,然后迭代项目以重新生成多文档输出:两个示例输出: