Я пытаюсь вставить объекты в файл JSON, используя оболочку, которая содержит jq
Вот сценарий shell.sh
#/bin/sh!
cp -f test.json test.json.tmp
jq '.cores |= . + {"brand3": "{", "master_url": "http://master.solr.local:8983/solr/brand3", "poll_interval": "00:01:00"}' test.json.tmp >test.json
rm test.json.tmp
test.json file
{
"cores": {
"brand1-nl-nl-live": {
"master_url": "http://master.solr.local:8983/solr/brand1-nl-nl-live",
"poll_interval": "00:01:00"
},
"brand2-nl-nl-live": {
"master_url": "http://master.solr.local:8983/solr/brand2-nl-nl-live",
"poll_interval": "00:01:00"
},
"brand3-nl-nl-live": "{",
"master_url": "http://master.solr.local:8983/solr/brand3-nl-nl-live",
"poll_interval": "00:01:00"
}
}
Работает, но не хочет с кавычками и запятой "{",
Следующим шагом будет запуск оболочки с командой argumnts времени выполнения (./shell.sh brand3-nl-nl-live)
Пример:
#/bin/sh!
var=$1
cp -f test.json test.json.tmp
jq '.cores |= . + {"$var": "{", "master_url": "http://master.solr.local:8983/solr/$var", "poll_interval": "00:01:00"}' test.json.tmp >test.json
rm test.json.tmp
, который должен вставить объект в json
{
"cores": {
"brand1-nl-nl-live": {
"master_url": "http://master.solr.local:8983/solr/brand1-nl-nl-live",
"poll_interval": "00:01:00"
},
"brand2-nl-nl-live": {
"master_url": "http://master.solr.local:8983/solr/brand2-nl-nl-live",
"poll_interval": "00:01:00"
},
"brand3-nl-nl-live": {
"master_url": "http://master.solr.local:8983/solr/brand3-nl-nl-live",
"poll_interval": "00:01:00"
}
}