nDiki : jq

jq

コマンドライン JSON プロセッサ。

テキストファイル →配列

テキストファイルの各行、を文字列型の要素とした JSON 配列に変換。

 jq -R . | jq -s .

オブジェクトの配列 →オブジェクトの配列

status (文字列型) が 200 のオブジェクトのみを抽出する

 jq 'map(select(.status == "200"))'

または

 jq '[ .[] | select(.status == "200") ]'

url が "/login" で始まるオブジェクトのみを抽出する。

 jq 'map(select(.url|startswith("/login")))'

size (文字列型) が 1000 以上のオブジェクトのみを抽出する。

 jq 'map(select(.size|tonumber >= 1000)'

上記の全てをみたすオブジェクトのみを抽出する。

 jq 'map(select(.status == "200" and (.url|startswith("/login")) and (.size|tonumber > 1000)))'

スポンサード リンク

2014年4月16日 (水)

今日のさえずり: 「闇開発」、意外と Google 検索結果少ない

2014年04月16日

  • 14:44 特定班。 / “「ソーシャル新人類」の不夜城〜10代は何を考えているのか - 恐ろしいほど簡単な個人の特定、「匿名性」の...:ITpro” http://nkbp.jp/1kZXJ5i
  • 14:44 アウトランだって! / “3D アウトラン |セガ 3D復刻プロジェクト” http://bit.ly/1kZXK9c
  • 17:10 「闇開発」、意外と Google 検索結果少ない。
  • 20:36 jq 試している。1行1データをいったん JSON の配列にするの cat data.txt | jq -R '.' | jq -s '.' 以外にいい方法あるのかな?
[ 4月16日全て ]

2014年7月29日 (火)

各行が JSON になっているログファイルを jq でチェック

各行が JSON になっているログファイルのチェックにコマンドライン JSON プロセッサの jq 使ってみた。

とりあえず | オペレータが肝なのと、フィルタリングには select 関数を使えば良いということを理解した。あと関数はパイプライン的に受け取るデータと、引き数とで受けとるデータとの2種類があるのでちょっと慣れが必要。普段からレシピを作っておく方が良さそげ。気がついたら http://www.naney.org/diki/dk/jq.html の方にメモっておくことにする。

ワンライナーで書けるのは便利だけれど、大量の JSON データでかつきちんと parse しないで正規表現で抜けるようなデータの場合は Perl でチャキチャキっとやった方が当然だけれど圧倒的に高速なのでうまく使い分けだね。

[ 7月29日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

follow us in feedly

月別インデックス
Process Time: 0.052844s / load averages: 0.26, 0.41, 0.48
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker