たとえば、次のパラメータにはリスト値(マシンリスト)が含まれます。
echo $list_of_machine
worker01.sys645.com worker02.sys645.com worker03.sys645.com worker04.sys645.com worker05.sys645.com
私たちはこの標準JSONを持っています。
{
"MNN_server": [
"master02.sys645.com"
],
"HTTP_SERVER": [
"master01.sys645.com",
]
}
値を追加する方法 - $list_of_machineの下HTTP_サーバー要素は次のとおりです。
期待されるパフォーマンス
{
"MNN_server": [
"master02.sys645.com"
],
"HTTP_SERVER": [
"master01.sys645.com",
"worker01.sys645.com",
"worker02.sys645.com",
"worker03.sys645.com",
"worker04.sys645.com",
"worker05.sys645.com"
]
}
ベストアンサー1
]
「標準JSON」は実際にはJSONではありません(末尾に追加のコンマがありますHTTP_SERVER
)。
また、sed
これはソースが必要な方法でフォーマットされている場合にのみ機能し、任意のJSON(改行がない可能性がある)では機能しません。
したがって、より良い解決策は次jq
のように使用することです。
$ jq --arg list "$list_of_machine" '.HTTP_SERVER|=.+($list|split(" "))' < your_file.json
{
"MNN_server": [
"master02.sys645.com"
],
"HTTP_SERVER": [
"master01.sys645.com",
"worker01.sys645.com",
"worker02.sys645.com",
"worker03.sys645.com",
"worker04.sys645.com",
"worker05.sys645.com"
]
}
your_file.json
もちろんよく整理されたものもあります。