我就长话短说吧。这就是我要处理的问题。我有一个使用curl的链接,它通过管道输出一个json格式的输出,从而使用jq过滤特定的条目。这是json文件
{
"remote": [
{"name": "cast-1",
"id": 1212
},
{"name": "cast-1",
"id": 1214
},
{"name": "home-11",
"id": 3212
},
{"name": "cast-3",
"id": 3212
},
{"name": "cast-3",
"id": 3213
},
{"name": "cast-4",
"id": 4211
}
]
}我想要的输出是
"cast-1": 1212 , 1214,
"cast-3": 3212 , 3213,
"cast-4": 4211,通过我的尝试,我只能输出以下内容
"cast-1": 1214,
"cast-3": 3213,
"cast-4": 4211,到目前为止我的代码
curl ... | jq 'reduce .remote[] as $v ({}; . + {"\($v.name)":$v.id})' 无法计算出添加cast-1和cast-3中的第二个id。有没有一种方法可以格式化输出,以获得有效的JSON输出格式?也许是python或perl方法?我不熟悉awk,我想让你知道。
发布于 2019-12-15 17:03:13
这里不需要reduce,group_by就足够了。例如:
.remote | group_by(.name) | map({(.[0].name): map(.id)}) | addhttps://stackoverflow.com/questions/59342412
复制相似问题