在ubuntu linux机器中使用jq更改json值
我有一个json文件,比如example.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",
[
{
"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 )