【发布时间】:2021-11-25 14:13:17
【问题描述】:
我有以下 json:
[
{
"user": "u1",
"id": "0001"
},
{
"user": "u2",
"id": "0002",
"groups": [
{
"id": "100001",
"name": "G1"
},
{
"id": "100002",
"name": "G2"
}
]
},
{
"user": "u3",
"id": "0003",
"groups": [
{
"id": "100001",
"name": "G1"
}
]
}
]
预期输出是:
u1 0001 -
u2 0002 G1,G2
u3 0003 G1
我有以下 jq 命令:
jq -r 'map(select(.groups[].id)?)| map([.user, .id, ([.groups[].name]|join(","))] | join("\t")) | join("\n")' json
产生:
u2 0002 G1,G2
u2 0002 G1,G2
u3 0003 G1
如何在输出中也包含没有 groups 键的对象并避免如上所示的重复?
【问题讨论】:
-
您的预期输出中有错字,第一行应该是
u1 0001 -
标签: jq