【发布时间】:2020-07-31 21:48:31
【问题描述】:
我有一个返回 json 的查询,如下所示:
{
"hostname": "seapr1pgdb032",
"ip": "10.215.0.6",
"dataCenter": "seapr1"
}
{
"hostname": "seapr1cpndb001",
"ip": "10.203.0.41",
"dataCenter": "seapr1"
}
{
"hostname": "seapr1dhcp01",
"ip": "10.205.3.212",
"dataCenter": "seapr1"
}
数据中心可以变化,我想将每个数据中心的所有主机收集到一个对象中,如下所示:
{
"dataCenter": "seapr1",
"hosts": [
"seapr1pgdb032",
"seapr1cpndb001",
"seapr1dhcp01"
]
}
在Reshaping JSON with jq 工作,我认为这样做可以:
{dataCenter: .dataCenter, hosts: [.hostname] }
但我得到了三个数据中心对象,而不是我预期的单个合并对象:
{
"dataCenter": "seapr1",
"hosts": [
"seapr1pgdb032"
]
}
{
"dataCenter": "seapr1",
"hosts": [
"seapr1cpndb001"
]
}
{
"dataCenter": "seapr1",
"hosts": [
"seapr1dhcp01"
]
}
【问题讨论】:
-
简单。从
jq -s 'groub_by(.dataCenter)'开始,你可以自己做。 -
谢谢 - 我想我也可以使用它。