在ubuntu linux机器中使用jq更改json值

在ubuntu linux机器中使用jq更改json值,json,ubuntu,jq,Json,Ubuntu,Jq,我有一个json文件,比如example.json [ { "node": "cp-phix-app-uat14.hcinternal.net:80", "priority": 1, "state": "draining", "weight": 1 }, { "node": "cp-phix-app-uat13.hcinternal.net:80", "priority": 1, "state": "active",

我有一个json文件,比如example.json

 [
  {
    "node": "cp-phix-app-uat14.hcinternal.net:80",
    "priority": 1,
    "state": "draining",
    "weight": 1
  },
  {
    "node": "cp-phix-app-uat13.hcinternal.net:80",
    "priority": 1,
    "state": "active",
    "weight": 1
  }
]
我想使用jq进行查询,其中如果我的节点密钥是“cp-phix-app-uat14.hcinternal.net:80”,则将状态设置为“active”,因此我的输出应该如下所示:-

 [
  {
    "node": "cp-phix-app-uat14.hcinternal.net:80",
    "priority": 1,
    **"state": "active",**
    "weight": 1
  },
  {
    "node": "cp-phix-app-uat13.hcinternal.net:80",
    "priority": 1,
    "state": "active",
    "weight": 1
  }
]

我可以提出什么问题..我正在使用linux ubuntu机器。

虽然这段代码可能会回答这个问题,但提供关于如何和/或为什么解决这个问题的额外信息将提高答案的长期价值。请记住,你是在将来为读者回答这个问题,而不仅仅是现在提问的人!请你的答案添加一个n解释,并指出适用的限制和假设。@Dev-iL--问题很简单,答案很简单,可以作为需要理解的内容的指南(这里,
map
=
).
map
和赋值是非常常见的概念,jq文档可以随时获取具体细节。鉴于OP没有发布解决问题的尝试,以答案的形式提供一些指针似乎是一个合理的回答。此答案的其他上下文将有助于解释它的方式和原因回答了这个问题。
map( if .node ==  "cp-phix-app-uat14.hcinternal.net:80"
     then .state = "active"
     else .
     end )