Создать // добавить JSON массив из текстового файла в linux с циклом - PullRequest
0 голосов
/ 03 марта 2020

У меня есть файл ниже в формате TXT. Я хочу расположить данные в json формате массива в linux и добавить больше таких данных с помощью for / while l oop в том же массиве json в зависимости от условия. Пожалуйста, помогите мне с лучшим способом достичь этого.

File
Name:Rock
Name:Clock
{“Array" :[
{
"Name": "Rock",
},
{
"Name”: "Clock”,
}
]

1 Ответ

0 голосов
/ 04 марта 2020

Предположим, ваш исходный файл - объект. json и содержит пустой объект, {}; и что в начале каждой итерации пары ключ: значение определяются в другом файле, kv.txt.

Затем на каждой итерации вы можете обновлять массив. json, используя вызов:

< kv.txt jq -Rn --argfile object object.json -f program.jq | sponge object.json

, где program.jq содержит программу jq:

$object | .Array += 
  reduce inputs as $in ([]; . + [$in | capture("(?<k>^[^:]*): *(?<v>.*)") | {(.k):.v} ])

(sponge является частью пакета moreutils. Если его нельзя использовать, вам придется использовать другой метод: объект обновления. json.)

...