最後の行から2行目にJSONスニペットを追加します。

最後の行から2行目にJSONスニペットを追加します。

別のJSONファイル(main.json)の2行目に、次のJSONフラグメント(インデントとすべてを含む)を追加したいと思います。

追加するJSONフラグメント

"extendedProperties": {
        "AppID": {
          "values": [
            "12345"
          ]
        }

方法

  1. 変数にスニペットを追加します(例:snippet =cat toAddintoConnection.txt
  2. 正確にテストされecho "$snippet"リストされています(インデントを含む)
  3. sed '$i"$snippet"' main.json- その結果、"$snippet"2行目から最後の行まで文字通り印刷されます。

ご指導ありがとうございます。ありがとうございます。プラカシ

ベストアンサー1

JSONドキュメントでは、インデント、改行、キーと値の間のその他のスペースは重要ではありません。また、キーの順序は重要ではありません。

以下を使用して、jqコマンドラインから追加の最上位キーとその値を追加します。

jq '.extendedProperties = { AppID: { values: [ "12345" ] } }' main.json

AppIDシェル変数から文字列を取得します。

id=12345

jq --arg AppID "$id" '.extendedProperties = { AppID: { values: [ $AppID ] } }' main.json

ファイルからデータを追加するためにtoAddintoConnection.txt正しい形式のJSONドキュメントを追加するとします。

{
  "extendedProperties": {
    "AppID": {
      "values": [
        "12345"
      ]
    }
  }
}

または等しく、

{"extendedProperties":{"AppID":{"values":["12345"]}}}

main.json...次のように既存のJSON文書に追加できます。

jq -s 'add' main.json toAddintoConnection.txt

おすすめ記事