JSON配列のフィールドをbash配列に解析します。

JSON配列のフィールドをbash配列に解析します。

変数に格納されているオブジェクトのリストを含むJSON出力があります。 (私の表現は正確ではないかもしれません)

[
  {
    "item1": "value1",
    "item2": "value2",
    "sub items": [
      {
        "subitem": "subvalue"
      }
    ]
  },
  {
    "item1": "value1_2",
    "item2": "value2_2",
    "sub items_2": [
      {
        "subitem_2": "subvalue_2"
      }
    ]
  }
]

Ubuntu 14.04.1でbashスクリプトを実行するには、配列にitem2のすべての値が必要です。

必要な項目だけでなく、結果全体を配列に入れるいくつかの方法が見つかりました。

ベストアンサー1

使用:

readarray arr < <(jq '.[].item2' json)
printf '%s\n' "${arr[@]}"

より集中的なアプローチが必要な場合:

readarray -td '' arr

改行やその他の特殊文字を入力するときは、単語の分割を避けてください。

出力:

value2
value2_2

確認する:

一時ファイル名で置換>(command ...)または置換を処理します。<(...)このファイルを書き込んだり読み込んだりすると、バイトは内部コマンドにパイプされます。通常、ファイルのリダイレクトで使用されます。cmd1 2> >(cmd2).seehttp://mywiki.wooledge.org/ProcessSubstitution http://mywiki.wooledge.org/BashFAQ/024

おすすめ記事