jq について
ドメイン固有のクエリ言語を使用して JSON データを解析および処理します。条件ロジックを使用したフィルタリング、マッピング、集約、構造化データの再フォーマットをサポートしています。
主な機能
- 01パス式を使用して JSON から特定のフィールドまたはネストされた値を抽出
- 02条件ロジックで JSON オブジェクトと配列をフィルタリングと変換
- 03JSON、CSV、またはテキストなど複数の形式で結果を出力
活用シーン
- 01シェルスクリプトまたはパイプラインで API レスポンスから特定データを抽出
- 02JSON 形式の設定ファイルまたはログデータを解析
- 03他のコマンドラインツールと組み合わせて構造化データを変換・集約
インストール
OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。
インストール後にjq --versionを実行して確認します。
コマンド例
よく使うコマンドを使う順に並べています。
詳細
jq
jq は、JSON データを処理するための、sed、awk、grep などに似た軽量で柔軟なコマンドライン JSON プロセッサです。ポータブルな C で記述されており、実行時の依存関係がないため、構造化データの切り出し、フィルタリング、マッピング、変換を簡単に行えます。
ドキュメント
- 公式ドキュメント:jqlang.org
- jq をオンラインで試す:play.jqlang.org
インストール
ビルド済みバイナリ
最新リリースはGitHub のリリースページからダウンロードしてください。
プラットフォーム固有のアセットは、アーカイブではなく単体の実行ファイルです。macOS と Linux では、
ダウンロードしたファイルの名前を jq に変更し、chmod +x jq で実行可能にしてください。
Docker イメージ
jq イメージをプルすると、Docker を使ってすぐに始められます。
Docker で実行する
例:package.json ファイルからバージョンを抽出する
docker run --rm -i ghcr.io/jqlang/jq:latest < package.json '.version'
例:ボリュームをマウントして package.json ファイルからバージョンを抽出する
docker run --rm -i -v "$PWD:$PWD" -w "$PWD" ghcr.io/jqlang/jq:latest '.version' package.json
ソースからビルドする
依存関係
- libtool
- make
- automake
- autoconf
手順
git submodule update --init # if building from git to get oniguruma
autoreconf -i # if building from git
./configure --with-oniguruma=builtin
make clean # if upgrading from a version previously built from source
make -j8
make check
sudo make install
sudo ldconfig # on Linux, if jq cannot find libjq.so
静的リンク版をビルドします:
make clean
make LDFLAGS=-all-static
最新の git バージョンではなく、リリース済みの tarball(リリースページから入手可能)をビルドする場合は、autoreconf の手順を省略してください。その場合、flex や bison も不要です。
クロスコンパイル
クロスコンパイルの詳細については、GitHub Actions のファイルとクロスコンパイルの Wiki ページをご覧ください。
コミュニティとサポート
- 質問とサポート:Stack Overflow(jq タグ)
- チャットとコミュニティ:Discord に参加する
- Wiki と高度なトピック:Wiki を見る
ライセンス
jq はMIT ライセンスの下で公開されています。jq のドキュメントは
Creative Commons CC BY 3.0の下でライセンスされています。
jq はオープンソースの C ライブラリ「decNumber」の一部を使用しており、同ライブラリは
ICU ライセンスの下で配布されています。