我在用着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(使用前将#替换为@)