この記事は公開から1年以上が経過しています。内容が古い場合があるのでご注意下さい。

jqはのsedやawkのように、JSON用データをフィルタリングしたり置き換えなどの整形ができるコマンドで、JSON形式のデータを扱うには必須のツールです。

導入方法

このjqコマンドをCentOSで利用するのはとても簡単で、下記のページからコマンドファイルをダウンロードするだけです。
http://stedolan.github.io/jq/download/

ここから、利用環境にあったバイナリファイルをダウンロードします。
私の場合は、CentOS6の64bit版を利用しているので、「Linux」の「64bit」をダウンロードしました。

jq-linux01

# wget http://stedolan.github.io/jq/download/linux64/jq

これに実行権限を付けます。

# chmod 755 jq

使い方

使い方は、こんな感じです。

# cat myjsonfile.json | ./jq "."

{
  "Records": [
    {
      "responseElements": "<responseOmitted>",
      "requestParameters": {
        "includeAllInstances": false,
        "filterSet": {},
        "instancesSet": {}
      },
      "eventVersion": "1.0",

(以下略)

こんな感じで見やすく表示されます。

ちなみに、jqコマンドではなく、lessコマンドなどでこのファイルを見ると、以下の様に全て1行で表示されてしまい、非常に見づらいです。

{"Records":[{"eventVersion":"1.0","userIdentity":{"type":"Root","principalId":"XXXXXXXXXXXX","arn":"arn:aws:
(以下表示略)

ちなみにこのファイルは、CloudTrailのファイルでした。

コマンドパスの変更

このままだと、jqコマンドを使う度に、jqファイルまでのパスを指定しなければいけないので、コマンドパスが通っている/usr/local/binディレクトリあたりに移しておきます。

# mv jq /usr/local/bin/

これで、どこのディレクトリからでもjqコマンドが使えるようになりました。

他の方法としては、ソースからインストールという形がありますが、手軽に導入したい場合は、こちらの方法が楽かと思います。

関連記事:

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です