Ответ 1
Если ваши входные данные представляют собой поток объектов, то, если ваш jq не имеет inputs
, объекты должны быть "стертыми", например, используя параметр командной строки -s, чтобы объединить их.
Таким образом, одним из способов объединения объектов во входном потоке является использование:
jq -s add
Для второй проблемы, создание массива:
jq -s .
Конечно, есть и другие альтернативы, но они просты и не требуют самой последней версии jq. С jq 1.5 и выше вы можете использовать "входы", например, jq -n '[inputs]'
Эффективные решения
Вместо того, чтобы портить (используя опцию -s или используя [inputs]
), было бы более эффективно использовать reduce
с inputs
и опцией командной строки -n. Например, чтобы объединить поток объектов в один объект:
jq -n 'reduce inputs as $in (null; . + $in)'