R言語で、JSON形式のログを tail -f (or less)する手法

JSON形式でログが吐き出されてるような場面で、ログを tail -f (UNIX)のような事をして表示したい場合に、有益なことができないので、R言語で軽く実装。node.jsとかでも出来そうなもんだけど、R言語の腕試しもこめこめ。

diff.0.json が古いログ
diff.1.json が新しいログ

tail 用のログファイル(テキスト形式)は別途作成すればよいかなと。単にappendするだけ@

“key_id”と言うユニークIDを基に、「追加された部分」のkey_idのみを表示

・・・まあ、For – Next LOOP 使ってりゃ楽勝と思われだけどね(笑)

—-

 

if (!require(jsonlite)) install.packages(‘jsonlite’, quiet = TRUE)
suppressMessages(library (jsonlite))

isNotExist <- function(str, vec){
boo = all(str != vec)
return (boo)
}

tmp.0.vec <- unlist(do.call(cbind, jsonlite::read_json(“diff.0.json”))[“key_id”,])
tmp.1.vec <- unlist(do.call(cbind, jsonlite::read_json(“diff.1.json”))[“key_id”,])
tmp.vec <- tmp.1.vec[which(sapply(X=tmp.1.vec, FUN=isNotExist, tmp.0.vec))]
print(tmp.vec)
length(tmp.0.vec) <- 0
length(tmp.1.vec) <- 0

 

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

w

%s と連携中

仮想通貨、ビットコイン、イーサリアム、リップルをやるなら

仮想通貨、ビットコイン、イーサリアム、リップルやるなら Binance

Binance