Windowsでjqコマンドをインストールしてコマンドプロンプトで使う方法。その他OSへのインストール方法まとめ。

jq Linux macOS OS Windows コマンド

Windowsにjqコマンドをインストールして使う方法を調べたのでメモしておきます。ついでにWindows以外のインストール方法もまとめます。

jqとは?

jsonデータを解析して整形したり集計したり、値を抜き出したりできる便利ツールです。
https://stedolan.github.io/jq/

Windowsにjqをインストール

Windows用のパッケージマネージャーで「chocolatey」という物があるので、これを使います。(知らなかった)
https://chocolatey.org/

読み方は「チョコレーティ」です。「チョコレート風味」みたいな意味だそうです。この名前になった理由はよく分からない。

chocolateyをインストール

コマンドプロンプトを管理者モードで起動し、以下のコマンドを実行します。

C:\WINDOWS\system32>@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

chocolateyでjqをインストール

インストールしたchocolateyを使ってjqをインストールします。

いったんコマンドプロンプトを終了して再度管理者モードでコマンドプロンプトを立ち上げてから、以下のコマンドを実行します。

> chocolatey install jq
…
↓途中で入力を求められるので「Y」を入力してエンターキーを押します。
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): 

これでjqのインストールが完了しました。

jq公式サイトからexeファイルをダウンロードする

chocolateyを入れるのがめんどくさい、上手くいかないという人は、jq公式サイトからexeファイルをダウンロードするという方法もあります。

jq公式サイト

公式サイトトップページの「Download 1.6」を押して、ドロップダウンメニューの「Windows(64bit)」を選択するとexeファイルがダウンロードされます。

ダウンロードした「jq-win64.exe」を好き場所において、パスを通せばコマンドプロンプトから使う事ができます。

jqを使う

今回はTwitter APIのCLIツールtwurl の結果を見やすくしたかったので、試してみます。

twurl "/1.1/search/tweets.json?q=from%3ANasa%20OR%20%23nasa" | jq
{
  "statuses": [
    {
      "created_at": "Tue Oct 09 13:34:20 +0000 2018",
      "id": 1049654296592228400,
      "id_str": "1049654296592228353",
      "text": "RT @NASAaero: Are you at #BalloonFiesta? Today, from 6–11AM, visit the NASA pavilion and see how we are transforming aviation by developing…",
      "truncated": false,
      "entities": {
        "hashtags": [
          {
            "text": "BalloonFiesta",
            "indices": [
              25,
              39
            ]
          }
        ],
        "symbols": [],
        "user_mentions": [
          {
            "screen_name": "NASAaero",
            "name": "NASA Aeronautics",
            "id": 2734381938,
            "id_str": "2734381938",
            "indices": [
              3,
              12
            ]
          }
        ],
        "urls": []
      },
      "metadata": {
        "iso_language_code": "en",
        "result_type": "recent"
      },
~(略)~

jsonが改行、インデントされて見やすくなりました。

textを抜き出してみる。

>twurl "/1.1/search/tweets.json?q=from%3ANasa%20OR%20%23nasa" | jq -r
"{text: .statuses[].text}"
{
"text": "RT @NASASun: Wind launched in 1994 and is still sending back valuable data from Lagrange point 1! Over its 20+ years in space, Wind has tak…"
}
{
"text": "RT @TomHall: #Timelapse of the\n\n@SpaceX Falcon 9 take off \n\nseen from Downtown LA.\n\n \n\n#\n\n#Rocket #LosAngeles #ILoveLA #MyDayInLA #NASA #…"
}
{
"text": "RT @TomHall: #Timelapse of the\n\n@SpaceX Falcon 9 take off \n\nseen from Downtown LA.\n\n \n\n#\n\n#Rocket #LosAngeles #ILoveLA #MyDayInLA #NASA #…"
}

うまくできました。

MacOSにjqをインストールする

MacOSの場合はbrewを使ってインストールします。

$ brew install jq

CentOSにjqをインストールする

CentOSの場合はyumを使ってインストールします。

$ sudo yum -y install epel-release
$ sudo yum -y install jq

Ubuntuにjqをインストールする

Ubuntuの場合はaptを使ってインストールします。

$ sudo apt -y update
$ sudo apt -y install jq

Linux系OSで実行ファイルをダウンロードする(yumやaptが使えない場合)

レンタルサーバー等でパッケージマネージャーが使えない場合は実行ファイルを直接ダウンロードする事もできます。

以下のコマンドで実行ファイルをダウンロードして使います。

$ sudo curl -L "https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64" -o /usr/local/bin

/usr/local/binへのアクセス権限が無くここに配置できない場合は、自分のユーザーのホームディレクトリ以下のどこかに置いて使いましょう。

以上です!

コメント/ピンバック

タイトルとURLをコピーしました