株式会社ヴァンデミックシステム

Blog

<スポンサーリンク>

複数キーを出力させる場合は、カンマ区切りでキーを指定する。
また、「InstanceName: (.Tags[] | select(.Key==”Name”).Value),」な感じで、<新キー名>:(キー)とすることで、新しいキーで出力させられる

aws ec2 describe-instances | jq '.Reservations[].Instances[] | {InstanceId, InstanceName: (.Tags[] | select(.Key=="Name").Value), Status: (.State.Name) }'
{
  "InstanceId": "i-0bea566068a15007b",
  "InstanceName": "Server1",
  "Status": "stopped"
}
{
  "InstanceId": "i-04752c2087caa6f62",
  "InstanceName": "Server2",
  "Status": "running"
}

全体を配列にする場合は、jq ‘[<中身>]’このような感じでカッコを指定すると配列というか配列っぽいオブジェクトになる

aws ec2 describe-instances | jq '[.Reservations[].Instances[] | {InstanceId, InstanceName: (.Tags[] | select(.Key=="Name").Value), Status: (.State.Name) }]'
[
  {
    "InstanceId": "i-0bea566068a15007b",
    "InstanceName": "Server1",
    "Status": "stopped"
  },
  {
    "InstanceId": "i-04752c2087caa6f62",
    "InstanceName": "Server2",
    "Status": "running"
  }
]

各項目を配列にするときは| to_entriesにわたす

aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | {InstanceId, InstanceName: (.Tags[] | select(.Key=="Name").Value), Status: (.State.Name) }' | jq '. | to_entries'
[
  {
    "key": "InstanceId",
    "value": "i-0bea566068a15007b"
  },
  {
    "key": "InstanceName",
    "value": "Server1"
  },
  {
    "key": "Status",
    "value": "stopped"
  }
]
[
  {
    "key": "InstanceId",
    "value": "i-04752c2087caa6f62"
  },
  {
    "key": "InstanceName",
    "value": "Server2"
  },
  {
    "key": "Status",
    "value": "running"
  }
]

一発目から配列で出力する場合は、「| [.InstanceId, (.Tags[] | select(.Key==”Name”).Value),.State.Name]」な感じで、[]を指定する

aws ec2 describe-instances | jq -r '.Reservations[].Instances[] | [.InstanceId, (.Tags[] | select(.Key=="Name").Value),.State.Name]'

<スポンサーリンク>

コメントを残す

Allowed tags:  you may use these HTML tags and attributes: <a href="">, <strong>, <em>, <h1>, <h2>, <h3>
Please note:  all comments go through moderation.

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)