Вот упрощенный образец данных JSON, с которыми я работаю:
[
{ "certname": "one.example.com",
"name": "fact1",
"value": "value1"
},
{ "certname": "one.example.com",
"name": "fact2",
"value": 42
},
{ "certname": "two.example.com",
"name": "fact1",
"value": "value3"
},
{ "certname": "two.example.com",
"name": "fact2",
"value": 10000
},
{ "certname": "two.example.com",
"name": "fact3",
"value": { "anotherkey": "anothervalue" }
}
]
Результат, который я хочу достичь, используя jq
предпочтительно, следующий:
[
{
"certname": "one.example.com",
"fact1": "value1",
"fact2": 42
},
{
"certname": "two.example.com",
"fact1": "value3",
"fact2": 10000,
"fact3": { "anotherkey": "anothervalue" }
}
]
Стоит отметить, что не все элементы имеют одинаковые пары имя / значение. Кроме того, значения часто являются сложными объектами сами по себе.
Если бы я делал это на Python, это не было бы большим делом (и да, сейчас я слышу, как хор "сделай это на Python" звучит у меня в ушах). Я хотел бы понять, как это сделать в jq
, и это ускользает от меня в данный момент.