jq 按值从数组中删除元素

2023-11-26

我在用着jq并尝试根据其值从数组中删除元素,但无法弄清楚语法,它适用于 map 但不适用于 del:

input = [10,11,12]

echo $input | jq -r 'map(select(. == 10))'回报[10]

echo $input | jq -r 'del(select(. == 10))'回报[10,11,12] not [11,12]正如预期的那样

有人能指出我正确的方向吗?


del用于按路径删除,而不是按值删除:

 [10,11,12] | del(.[0]) #=> [11,12]

实现你想要的目的的一种方法是使用select:

 [10,11,12] | map(select(. != 10))

另一种方法是使用数组减法:

 [10,11,12] - [10]

但这也许太容易了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jq 按值从数组中删除元素 的相关文章

随机推荐