awsコマンドの返り値はJSONで返ってきますが、見やすく整形するには色々とコマンドを記述しなければいけません。
そこでフィルタプログラム jq を利用すると少しだけ整形が楽になります。
Homebrew で jq をインストールします。
$ brew install jq
jEC2のインスタンスを「インスタンスID」「タグ」「インスタンスタイプ」で一覧表示してみます。
その際、jq のオプション -c(--compact-output)で圧縮出力します。
aws ec2 describe-instances | jq -c '.[][].Instances[]
| [.InstanceId,[.Tags[] | select(.Key == "Name").Value][], .InstanceType]'
["i-0cxxxxxx","Linux2","t2.micro"]
["i-01xxxxxx","cloud9-sample","t2.micro"]
このようにパイプ(|)で連結させてフィルタリングします。
結果内容を揃える場合、Macの標準コマンド column を利用します。
その際、jq コマンドのオプションを -r(--raw-output)で生出力にします。
aws ec2 describe-instances \
| jq -r \
'.[][].Instances[]
| [.InstanceId,
[.Tags[] | select(.Key == "Name").Value][],
.InstanceType]
| @tsv' \
| column -t
i-0cxxxxxx Linux2 t2.micro
i-01xxxxxx cloud9-sample t2.micro
軽量JSONパーサー『jq』のドキュメント:『jq Manual』をざっくり日本語訳してみました