У меня есть такая строка json,
rssample='{ "Changes": [{"Action": "UPSERT","ResourceRecordSet": {"ResourceRecords":[{ "Value":""}], "Type": "TXT","NAME":"","TTL": 300}}]}'
Я хочу обновить в ней ИМЯ и значение, используя следующие переменные ..
name="testname"
newvalue="heritage=external-dns,external-dns/owner=us-east-1:sandbox-newtestowner,external-dns/resource=ingress/monitoring/prometheus-operator-alertmanager"
Итак, я попробовал используя sed,
newrs=$(sed -E "s/"NAME":""/"NAME":"$name"/g" <<< "$rssample")
newrs1=$(sed -E "s/"Value":""/"Value":"\$newvalue"/g" <<< "$newrs")
Я ожидаю, что ниже будет вывод,
{ "Changes": [{"Action": "UPSERT","ResourceRecordSet": {"ResourceRecords":[{ "Value":"\"heritage=external-dns,external-dns/owner=us-east-1:sandbox-newtestowner,external-dns/resource=ingress/monitoring/prometheus-operator-alertmanager\""}], "Type": "TXT","NAME":"testname","TTL": 300}}]}
Но у меня пустое имя. И получаю ошибку для значения как,
sed: 1: "s/Value:/Value:"heritag ...": bad flag in substitute command: 'o'
Мой вывод: {"Changes": [{"Action": "UPSERT", "ResourceRecordSet": {"ResourceRecords": [{"Value": ""}], "Type": "TXT", "NAME") : "", "TTL": 300}}]}
Пожалуйста, дайте мне знать, как это исправить? использует sed хорошая идея или jq?