memo

2012-10-20

JSON 等のそれなりの構造を持ったデータのストリームに対して awk 的に使えるツール書いた

書いた。

https://github.com/nakamuray/owk

インストールは cabal install で。一般ユーザーで実行したなら ~/.cabal/bin/owk に入る。

Twitter の timeline から自分宛の mention を探す例:

$ owk -io json -m 'for $.entities.user_mentions: m -> { m.screen_name == "nakamuray" ? { print $; next () } }' < timeline.json

Redmine の issues で更新のあったものを表示する例:

$ while :; do curl -s -H 'X-Redmine-API-Key: XXXXX' http://redmine/issues.json\?sort=updated_on\&assigned_to_id=me; sleep 60; done | \
    owk -io json 'last = ref ""; main = $ -> { for $.issues: i -> { i.updated_on > last () ? { print $; last := i.updated_on } } }'

こういうツールを書くには Haskell は良い。