У меня есть однострочный json-файл, похожий на этот
{"fieldA":1, "fieldB":"foo"}
{"fieldA":2, "fieldB":"bar"}
{"fieldA":4, "fieldB":"foobar"}
...
Как я могу правильно прочитать этот файл, используя jq
?
Я пытался сделать:
cat myFile.json | jq [.]
но это возвращает что-то вроде:
[{
"fieldA":1,
"fieldB":"foo"
}]
[{
"fieldA":2,
"fieldB":"bar"
}]
[{
"fieldA":4,
"fieldB":"foobar"
}]
...
но я хотел бы получить это вместо этого:
[{
"fieldA":1,
"fieldB":"foo"
},
{
"fieldA":2,
"fieldB":"bar"
},
{
"fieldA":4,
"fieldB":"foobar"
},
...]
Заранее спасибо!
Хотя я почти уверен, что это дубликат.
Возможный дубликат Как объединить последовательность объектов в jq в один объект?
Несмотря на вопрос об «объекте» в заголовке, вопрос также спрашивает (и получает ответ) об объединении в массив.
Вы Конечно хотите этого? Какова ваша конечная цель? Вы можете объединить все входные данные в один массив, используя jq -n '[inputs]'
(-n
избегает обычного чтения стандартного ввода в .
, позволяя отображать все это на inputs
), но это означает, что он не может производить какие-либо выходные данные или делать что-либо еще. обработки, пока весь ввод не будет прочитан, что может быть или не быть тем, что вы хотите.
[он не может произвести какой-либо вывод или выполнить дальнейшую обработку, пока весь ввод не будет прочитан] это при использовании inputs
или .
?
Вы можете проглотить входной файл с помощью
-s
: jqplay.org/s/uFL1SucU6v