Решил более пристально разобраться с json, что оно такое и с чем едят. Полез ковыряться с jq — в изумлении непреходящем вторые сутки: это ж надо было так хитровыгнуто сочинить, у меня от его выражений остатки ума вытекают. Народ, кто в теме, объясните идиоту как быть в таком случае:
на выходе неких фильтров образуется нечто вроде
Как это привести к виду
на выходе неких фильтров образуется нечто вроде
{"a":1}
{"b":2}
{"c":3}
Как это привести к виду
{
"a": 1,
"b": 2,
"c": 3
}
? Вроде элементарно должно быть, но я мозг уже сломал.Tags:
no subject
ЗЫ AWK, в предположении о допустимости последней запятой, без проверок входа и т.п.:
#! /usr/bin/gawk -f BEGIN { print "{" } { gsub(/[{}]/, "", $0) print " " $0 "," } END { print "}" }ЗЗЫ Вариант центральной части с простым предусловием и небольшим "улучшайзингом":
/^{.*}$/ { sub( /^{/, " ", $0) sub (/}$/, ",", $0) sub (/:/, ": ", $0) print }no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
--slurp/-s:
Instead of running the filter for each JSON object in the input, read the entire input stream into a large array and run the filter just once.
no subject
Тут ещё плохо, я пока туго вообще понимаю синтаксис jq, поэтому возможно вообще через жопу пытаюсь.
Нашёл вот такой вариант https://jqplay.org/s/nU4L7Qsrk-z
Но но работает толком если только строго на вход подавать, а если это результат работы других фильтров — то нет. Я так понимаю inputs касается только изначально входных данных. А придумать что вместо inputs тут подставить моих познаний не хватает.
no subject
https://stackoverflow.com/questions/54254963/nested-filtering-with-jq
no subject
```
var a = {"a": 1};
var b = {"b": 2};
var c = {"c": 1};
var res = {...a,...b,...c}
```
Что там jq умеет я не в курсе, но, наверное, как-то может слить три объекта в один.
no subject
no subject
https://stackoverflow.com/questions/19529688/how-to-merge-2-json-objects-from-2-files-using-jq
Указанная там магия не подходит?