【发布时间】:2019-11-14 13:32:17
【问题描述】:
用这个例子:
[111, 222, 333, 444]
我想更改第三个元素(或其他来自 bash 变量的元素)。
【问题讨论】:
-
这是一个 json 数组,因为我需要处理
jq。
标签: jq
用这个例子:
[111, 222, 333, 444]
我想更改第三个元素(或其他来自 bash 变量的元素)。
【问题讨论】:
jq 。
标签: jq
您可以使用以下jq 命令:
jq --argjson index "$index" '.[$index] |= <new value>'
|= 是更新运算符,它可以让您在不更改路径的情况下更改左侧操作数上寻址的值,这样您就可以返回整个数组而不仅仅是更新后的值。
请注意,索引是从 0 开始的,因此要更改第三个元素,您需要将 bash 变量 $index 设置为 2。
需要使用--argjson 而不是通常的--arg 以避免将变量作为字符串处理,而是作为我们可以用作索引的数字。
你可以(有点)try it here。
【讨论】:
[ 111, 555, 333 ]