Movatterモバイル変換


[0]ホーム

URL:


hydroculのメモ >コマンドの使い方(Linux) >jq コマンド

jq コマンド2021/01/18

JSON形式のデータをカラーで見やすく表示したり、データを抽出したりするコマンド。

$ echo '{"name": "taro", "age": 30, "sex": "male"}' | jq .{  "sex": "male",  "age": 30,  "name": "taro"}

インストール2021/01/18

Ubuntuでは

sudo apt install -y jq

(Ubuntu 20.04 で確認)

CentOSでは

sudo yum install -y jq

(CentOS 8 で確認)

基本的な使い方2014/10/17

JSON全体を表示。

$ echo '{"name": "taro", "age": 30, "foo": ["abc", "def"], "bar": {"あ":10, "い":20}}' | jq .{  "bar": {    "い": 20,    "あ": 10  },  "foo": [    "abc",    "def"  ],  "age": 30,  "name": "taro"}

要素を取得。

$ echo '{"name": "taro", "age": 30, "foo": ["abc", "def"], "bar": {"あ":10, "い":20}}' | jq '.["name"]'"taro"

こうも書ける。省略の記法なのかな。

$ echo '{"name": "taro", "age": 30, "foo": ["abc", "def"], "bar": {"あ":10, "い":20}}' | jq .name"taro"

-r オプションを付けると、結果が文字列の場合にJSON形式ではなく、文字列を直接出力してくれる。

$ echo '{"name": "taro", "age": 30, "foo": ["abc", "def"], "bar": {"あ":10, "い":20}}' | jq -r .nametaro

要素がまた構造を持っていても大丈夫。

$ echo '{"name": "taro", "age": 30, "foo": ["abc", "def"], "bar": {"あ":10, "い":20}}' | jq '.["foo"]'[  "abc",  "def"]

要素の要素を取得。

$ echo '{"name": "taro", "age": 30, "foo": ["abc", "def"], "bar": {"あ":10, "い":20}}' | jq '.["foo"][0]'"abc"$ echo '{"name": "taro", "age": 30, "foo": ["abc", "def"], "bar": {"あ":10, "い":20}}' | jq '.["bar"]["あ"]'10

オプション2021/01/18

-C
デフォルトではカラーで表示してくれるが、lessコマンドなどパイプをつなげるとカラー表示してくれない。しかしこのオプションを付ければカラー表示を強制してくれる。
-M
カラー表示を無効にする
-r
文字列の場合に"" で囲まずに直接出力
-S
オブジェクトの中のキーをソートする

色付きでlessで見るには2014/10/14

-C を付けてカラー表示を矯正させ、lessコマンドでは-R オプションを付けてエスケープシーケンスを有効にするとよい。

curl -s 'http://www.gaitameonline.com/rateaj/getrate' | jq -C . | less -R
このサイトは個人メモの集合です。
スポンサーリンク

[8]ページ先頭

©2009-2025 Movatter.jp