Я пытаюсь построить ИНДЕКС из файла json, который содержит список плоских объектов.
Если я использую конструкцию
jq 'INDEX(.a + ":" + .b)' < data.json
, я получаю то, что хочу.Но если я использую
jq 'INDEX(input; .a + ":" + .b) data.json
, я получаю сообщение об ошибке
jq: error (at data.json:<last-line>): break
Причина, по которой мне нужно использовать вторую форму, заключается в том, что мне нужно присоединиться к другой input
кИндекс первого, и я не вижу, как это сделать из STDIN.
Есть идеи, как мне обойти это?
(В настоящее время работает jq-1.6 на MacOS 10.13.6)
Добавление ввода (data.json):
[
{
"a": "a1",
"b": "b1",
"c": "c1",
"d": "d1"
},
{
"a": "a2",
"b": "b2",
"c": "c2",
"d": "d2"
},
{
"a": "a3",
"b": "b3",
"c": "c3",
"d": "d3"
}
]
И ожидаемый вывод
{
"a1:b1": {
"a": "a1",
"b": "b1",
"c": "c1",
"d": "d1"
},
"a2:b2": {
"a": "a2",
"b": "b2",
"c": "c2",
"d": "d2"
},
"a3:b3": {
"a": "a3",
"b": "b3",
"c": "c3",
"d": "d3"
}
}