Я хочу изменить следующий json, используя переменные, указанные в оболочке bash Linux, используя jq.
var1="red"
var2="european.flowers"
var3="european_vegetables"
var4="20"
Мой json:
{
"plants": {
"flowers.small": {
"colour": "",
"age": "",
"vegetables": {
"root": "",
"height": ""
}
}
}
}
Я хочу изменить json, используя переменные в jq:
{
"plants": {
"${var2}": {
"colour": "${var1}",
"age": "",
"${var3}": {
"root": "",
"height": "${var4}"
}
}
}
}
Я пытаюсь просто установить значение поляиз переменных:
Команда:
cat myjson.json|jq '.plants["flowers.small"].colour = "${var1}"' -c
Результат:
{"plants":{"flowers.small":{"colour":"${var1}","age":"","vegetables":{"root":"","height":""}}}}
Команда :
cat myjson.json|jq --arg v "$var1" '.plants.["flowers.small"].colour = [$v]' -c
Результат:
jq: error: syntax error, unexpected '[', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1:
.plants.["flowers.small"].colour = $v
jq: 1 compile error
Моя версия jq: jq-1.5-1-a5b5cbe
Как я могу переименовать поле и установить значение дляключ от переменных?Это даже выполнимо, используя версию jq?