gpt4 book ai didi

arrays - jq:从数组中删除元素

转载 作者:行者123 更新时间:2023-12-01 23:48:53 29 4
gpt4 key购买 nike

我有这个 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,然后将其作为 del(.[0]) 传递给 delete,表示删除第 0 个索引处的元素。

.vars.instances |= del(.[index("one")])

关于arrays - jq:从数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63741888/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com