jq︵https://stedolan.github.io/jq/︶の紹介では、﹁JSON処理のワンライナー︿一行野郎﹀としてめちゃくちゃ便利!﹂とアピールするのが定番です。もちろんそれは本当で、﹁めちゃくちゃ便利!﹂です。が、実はjqは、ワンライナー記述にとどまらない、かなり本格的なプログラミング言語です。 JSON処理のためのDSL︿Domain Specific Language | 領域特化言語﹀なので、汎用言語ではありません。しかし、汎用言語が備えている言語機能の一部︵関数定義、モジュールシステムなど︶をjqも持っています。またjqは、独特で楽しいプログラミング・パラダイム -- “パイプライン指向”に基づいて設計されています。 この記事では、ワンライナーを超えたjqの使い方と、プログラミング言語としてのjqの特徴を紹介します。長い記事になってしまったので、一