我有以下要修改的data.json,我想根据过滤的IP地址范围(例如"10.13*")将状态更改为"禁用".我try 了以下命令,我需要获得整个json内容作为输出,但是我得到了一个语法错误(我已经使用相同的方法来更新单个值(不使用字符映射),它工作得很好.(计划在shell 命令中使用此命令,并将输出重定向到一个新文件).有人能帮我这个忙吗?

jq '(.[]| select(.node|test("^10.13*"))).state |="disabled" data.json
[
    {
        "node":"10.13.248.254:61052",
        "state": "active"
    },
    {
        "node":"10.13.248.255:61052",
        "state": "active"
    },
    {
        "node":"10.54.247.228:61052",
        "state": "active"
    },
    {
        "node":"10.54.247.229:61052",
        "state": "active"
    }
]

推荐答案

您的正则表达式不太正确.此外,使用map让事情变得更简单也是值得的:

map(if (.node|test("^10[.]13[.]")) then .state="disabled" else . end)

或者你可以简单地用startswith.


在回答跟进问题时:

如果您的数组位于{"properties": { "basic": {"nodes_table": _}}}中的_,您应该这样写:

.properties.basic.nodes_table |= map(....)

Json相关问答推荐

对面的行/列进行排序时可能出现错误

使用更高级别架构中的字段值在$def内实现约束

盒子图显示不正确

Allof Indide的JSON模式之一

简单条形图和有序分类中条形图的 colored颜色 梯度

当并非所有子对象都有 Select 器字段时 Select

(已回答)JSON 读取函数返回未定义而不是预期值 - Typescript

jq可以在两个JSON对象列表中依次添加对象吗?

无法在 json --data 中使用变量

如果值不存在,则将值插入 JSON 数组

向 JSON 文件添加注释

为什么JsonConvert反序列化对象以int但不长失败

如何使用 Swiftui 判断 JSON 是否缺少键值对

Swift:如何从字典中删除空值?

JBuilder中未定义的局部变量或方法json

如何获取json格式的KendoGrid显示数据?

如何在 Perl 中将简单的哈希转换为 json?

如何在不消除对象歧义的情况下使用 circe 解码 ADT

将 Objective-C 对象序列化和反序列化为 JSON

用 JSON 编写 HTML 字符串