我试图用 jq 填充下面的 json 数据并期望输出如下
{
"data": [
{
"topic_name": "BookShow",
"topic_id": "ABCDFG",
"urgency": "high"
},
{
"topic_name": "AmzonMarket",
"topic_id": "ESDCGHY",
"urgency": "high"
},
{
"topic_name": "AmzonMarket",
"topic_id": "ESDCGHY",
"urgency": "high"
},
{
"topic_name": "BookShow",
"topic_id": "ABCDFG",
"urgency": "high"
},
{
"topic_name": "bookTick",
"topic_id": "KOLPUYDD",
"urgency": "high"
},
{
"topic_name": "bookTick",
"topic_id": "KOLPUYDD",
"urgency": "high"
}
],
"more": false,
"limitations": 100,
"range": 0
}
Run Code Online (Sandbox Code Playgroud)
期望输出如下,这里“出现”将是新字段,用于计算出现次数。
"id","name","occurrences"
"KOLPUYDD","bookTick",2
"ABCDFG","BookShow",2
"ESDCGHY","AmzonMarket",2
Run Code Online (Sandbox Code Playgroud)
请支持。
用于group_by
形成所需的对象分组topic_id
并从中创建 CSV。
jq --raw-output '[ "id", "name", "occurrences" ], ( .data | group_by(.topic_name)[] |
{ id: .[0].topic_id, name: .[0].topic_name, occurrences: length } |
[.id, .name, .occurrences]) | @csv'
Run Code Online (Sandbox Code Playgroud)