Использование разделенной запятыми строки в оболочке для обновления списка JSON с помощью jq? - PullRequest
0 голосов
/ 15 января 2019

Как добавить значение к ключу json, используя?

val=""text"",""text"",""text""

jq '.doc[1].DEF[3].value="update comma separated val here" <<< "$jsonStr"

1 Ответ

0 голосов
/ 15 января 2019

Если ваша цель - разбить строку на запятые для создания списка и использовать свой список в jq, это может выглядеть следующим образом:

val=text1,text2,text3
jq --arg val "$val" '.whatever.item |= ($val | split(","))' <<<'{"whatever": {}}'

Примечание:

  • Нет никакого смысла в парных наборах двойных кавычек в назначении оболочки - они буквально взаимно отменяют друг друга и не становятся частью значения переменной.
  • Аргумент jq --arg используется для передачиэта переменная из контекста оболочки в контекст jq.
  • Конструкция |= используется для изменения вложенного значения при оценке в документе большего размера.
...