【发布时间】:2020-12-14 11:28:51
【问题描述】:
来自这个文件:
[
{
"network": "X.X.X.1",
"defaultGateway": "X.X.X.X",
"ipAddressTab": [
{
"foo1": "10.0.0.1",
"foo2": "network",
"status": "reserved",
"foo4": null,
"foo5": null,
"foo6": null,
"foo7": null,
"foo8": null,
"foo9": null,
"foo10": null,
"foo11": null
},
{
"foo1": "10.0.0.2",
"foo2": "network",
"status": "reserved",
"foo4": null,
"foo5": null,
"foo6": null,
"foo7": null,
"foo8": null,
"foo9": null,
"foo10": null,
"foo11": null
},
{
"foo1": "10.0.0.3",
"foo2": "network",
"status": "reserved",
"foo4": null,
"foo5": null,
"foo6": null,
"foo7": null,
"foo8": null,
"foo9": null,
"foo10": null,
"foo11": null
},
{
"foo1": "10.0.0.4",
"status": "available"
},
{
"foo1": "10.0.0.5",
"status": "available"
},
{
"foo1": "10.0.0.6",
"status": "available"
},
{
"foo1": "10.0.0.7",
"status": "available"
}
],
"full": false,
"id": "xxx"
},
{
"network": "X.X.X.2",
"defaultGateway": "X.X.X.X",
"ipAddressTab": [
{
"foo1": "10.0.0.1",
"foo2": "network",
"status": "reserved",
"foo4": null,
"foo5": null,
"foo6": null,
"foo7": null,
"foo8": null,
"foo9": null,
"foo10": null,
"foo11": null
},
{
"foo1": "10.0.0.2",
"foo2": "network",
"status": "reserved",
"foo4": null,
"foo5": null,
"foo6": null,
"foo7": null,
"foo8": null,
"foo9": null,
"foo10": null,
"foo11": null
},
{
"foo1": "10.0.0.3",
"foo2": "network",
"status": "reserved",
"foo4": null,
"foo5": null,
"foo6": null,
"foo7": null,
"foo8": null,
"foo9": null,
"foo10": null,
"foo11": null
},
{
"foo1": "10.0.0.4",
"status": "available"
},
{
"foo1": "10.0.0.5",
"status": "available"
},
{
"foo1": "10.0.0.6",
"status": "available"
},
{
"foo1": "10.0.0.7",
"status": "available"
}
],
"full": false,
"id": "xxx"
}
]
# Just an example, there is more lines in my file
我可以保留我想要的信息:
cat myfile | jq 'map({network, full})'
[
{
"network": "X.X.X.1",
"full": false
},
{
"network": "X.X.X.2",
"full": false
}
]
现在我正在寻找一个技巧来计算和显示一些值。例如,我想像这样显示保留、分配和可用的数量:
[
{
"network": "X.X.X.1",
"full": false
reserved: 3
available: 4
},
{
"network": "X.X.X.2",
"full": false
reserved: 3
available: 4
}
]
我到处寻找,但没有找到很好的例子......
有人告诉我如何获得这个输出?
谢谢!
【问题讨论】: