Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2722

1分で、分かるよ。貴方が!jqコマンドを!

$
0
0
仕事で良くできているシェルシステムをいじる機会がありますが、シェルでJSON形式を操作する必要がありました。シェルは条件分を作成するさえややこしくて、シェル主力ではない場合はかなり生産性が低くなります。それでjqコマンドみたいなutilコマンドは大変助かります。今回はjqコマンドを触った感触と例を紹介していきたいと思います。 環境 ※ macでbashが使いたい方は、「1分で、macのシェル種類を切り替え」へ シェルはbash macOS Big Sur 11.3.1 実施 1. jqコマンドが使える状態か確認 jq --version なかったら、インストールしましょう 2. jqコマンドUtilをインストール Macなので今回はbrewでインストールします。 brew install jq linuxでしたらこうやって apt-get install jq # Debian or Ubuntu windowsならchocolatetyやバイナリーのようですね。 公式HPはこちら  3. jqを使ってみる 基本形は下記になります。'.'のarg項目は「identify filter」と呼ばれます。 jq '.' {"open": "tone"} > { > "open": "tone" > } このようにJSONの形式になります。 jqの役割はjsonのデータをINPUTにして json形式がOUTPUTとなります。つまり、jsonパーサーなんです。 4. jqをパイプラインで使ってみる パイプライン( | )をつけて使うとより効果的になります。 つまり、filterと飛ばれた '.'にjsonの「key」をつけて「value」だけを取得できます。 echo '{"foo": "bar", "hoge": "piyo"}' | jq '.foo' > "bar" 5. JSONファイルからパーシング 読み込むjsonファイルパスは第2引数として指定できます。 これでファイルからのパーシングもOKです。 echo '{"foo": "bar"}' > foobar.json jq '.' foobar.json > { > "foo": "bar" > } 結論 シェルプログラミングは強力ですが、どうしても生産性が低くなる傾向があります。 その時に、迷わずにjqコマンドようなUtilを使った方が一般的には断然にいいと思います。 他にもいいUtilがありましたら習いたいと思います。 レファレンス

Viewing all articles
Browse latest Browse all 2722

Trending Articles