JQ:从数组中删除元素 [英] jq: delete element from array
本文介绍了JQ:从数组中删除元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有此JSON文件,想要从数组中删除一个元素:
{
"address": "localhost",
"name": "local",
"vars": {
"instances": [
"one",
"two"
]
}
}
我正在使用此命令:
jq 'del(.vars.instances[] | select(index("one")))' data.json
输出为:
{
"address": "localhost",
"name": "local",
"vars": {
"instances": [
"two"
]
}
}
所以它可以像预期的那样工作,但只能使用JQ v1.6。对于JQ v1.5,我收到以下错误:
jq: error (at data.json:20): Invalid path expression near attempt to access element 0 of [0]
那么我做错了什么?这是一个错误还是v1.5的一个特性?是否有任何解决方法可以在v1.5中获得相同的结果?
提前谢谢
文斯
推荐答案
在两个版本上都可以使用一个笔记本电脑,
.vars.instances |= map(select(index("one")|not))
或者如果您想继续使用del()
,则将字符串"one"
的索引传递给如下函数,其中index("one")
获取索引0
,然后传递给DELETE,作为del(.[0])
表示删除第零个索引处的元素。
.vars.instances |= del(.[index("one")])
这篇关于JQ:从数组中删除元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文