我有这个 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 中获得相同的结果?
提前致谢
Vince
一款可以在两个版本上使用的便携式设备是,
.vars.instances |= map(select(index("one")|not))
或者如果你想继续使用del()
,输入字符串的索引"one"
到下面的函数,其中index("one")
获取索引0
然后传递给删除作为del(.[0])
意思是删除第零个索引处的元素。
.vars.instances |= del(.[index("one")])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)