かべぎわブログ

ブログです

jsonの配列をシェルスクリプトとjqでループさせて取得する

概要

AWSCLIで取得した結果が配列というかJSONというかなんというかみたいな形式で非常にシェルスクリプト上でさわりにくいのでjqコマンドををつかって取得してみます。

前提

たとえばAWSCLIを実行してこんなかんじでインスタンスIDとインスタンスタイプを取得してみる。

$ aws ec2 describe-instances --query 'Reservations[].Instances[].{instanceid:InstanceId,instancetype:InstanceType}'
[
    {
        "instanceid": "i-070c13018a4405fca", 
        "instancetype": "t2.micro"
    }, 
    {
        "instanceid": "i-0fbf66c8fdc22b7a8", 
        "instancetype": "t2.micro"
    }, 
    {
        "instanceid": "i-02584f5cde9d7beef", 
        "instancetype": "t2.micro"
    }, 
    {
        "instanceid": "i-0a5516da9898bf83a", 
        "instancetype": "t2.micro"
    } 
 ]

これをシェルスクリプトでループさせて項目ごとに取得したい。

スクリプト

実行してみる

$ ./json_syutoku.sh result.txt 
"i-070c13018a4405fca" "t2.micro"
"i-0fbf66c8fdc22b7a8" "t2.micro"
"i-02584f5cde9d7beef" "t2.micro"
"i-0a5516da9898bf83a" "t2.micro"
"i-098ebad2dee1c58d1" "t2.micro"

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界

  • 作者: ブルース・ブリン,Bruce Blinn,山下哲典
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 2003/02
  • メディア: 単行本
  • 購入: 18人 クリック: 331回
  • この商品を含むブログ (64件) を見る