Ответ 1
sed -i '$s/}/,\n"location":"canada"}/' sample.json
Результат:
{"name" :"sam",
"age":23,
"designation":"doctor",
"location":"canada"}
json файл следующим образом:
{"name" :"sam",
"age":23,
"designation":"doctor"}
теперь я хочу добавить еще один json-объект { "location": "canada" } в конец файла, используя bash script я попробовал echo "{" location ":" canada "}" → sample.json
но результат
{"name" :"sam",
"age":23,
"designation":"doctor"} {location:canada}
но я хочу, чтобы это было так
{"name" :"sam",
"age":23,
"designation":"doctor",
"location":"canada"}
предложите мне
sed -i '$s/}/,\n"location":"canada"}/' sample.json
Результат:
{"name" :"sam",
"age":23,
"designation":"doctor",
"location":"canada"}
Чтобы слить два json-объекта, вы можете использовать jq
утилиту командной строки:
$ jq -s add sample.json another.json
Вывод:
{
"name": "sam",
"age": 23,
"designation": "doctor",
"location": "canada"
}
Чтобы обновить один атрибут:
$ jq '.location="canada"' sample.json
Он производит тот же вывод.
Чтобы добавить "doctor"
в местоположение:
$ jq '.location = "doctor" + .location' input.json
Вывод:
{
"name": "sam",
"age": 23,
"designation": "doctor",
"location": "doctorcanada"
}