Для этих данных
https://jqplay.org/s/onlU9ghjn1
Я не могу понять правильный синтаксис, чтобы сделать что-то вроде
.gcp_price_list | ."CP-COMPUTEENGINE-OS" |
(
if ( .[].cores == "shared" ) then
.[].cores = 0.5
end
)
Кажется, мне нужна часть else
, но я не уверен, что туда поставить. Если я сделаю:
.gcp_price_list | ."CP-COMPUTEENGINE-OS" |
(
if ( .[].cores == "shared" ) then
.[].cores = 0.5
else .[].cores = .[].cores end
)
В результате все еще есть "общий доступ", т. Е.
"win": {
"low": 0.02,
"high": 0.04,
"cores": "shared",
"percore": true
}
Входные данные копируются в результат, а это не то, что я хочу.
Связанные, но я не нахожу их очень полезными, вопросы
JQ Если тогда остальное
Как обновить одно значение в документе json с помощью jq?
Моя практическая альтернатива - «заменить все» текстовым редактором,
но я оставлю этот вопрос здесь на случай элегантного решения.