JQ按值从数组中移除元素 [英] jq remove element from array by value
本文介绍了JQ按值从数组中移除元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用jq
,并尝试根据元素的值从数组中删除该元素,但找不到语法,它可以使用map,但不能使用del:
输入=[10,11,12]
echo $input | jq -r 'map(select(. == 10))'
返回[10]
echo $input | jq -r 'del(select(. == 10))'
返回[10,11,12]
不是预期的[11,12]
有人能给我指个方向吗?
推荐答案
del
用于按路径删除,而不是按值删除:
[10,11,12] | del(.[0]) #=> [11,12]
实现您想要的一种方式是使用select
:
[10,11,12] | map(select(. != 10))
另一种方法是使用数组减法:
[10,11,12] - [10]
但这可能太容易了。
这篇关于JQ按值从数组中移除元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文