読者です 読者をやめる 読者になる 読者になる

にゃるにゃる

このブログに書かれている内容は CC BY-ND 4.0 の下に提供されています。

Happy Hacking 松屋 with シェルスクリプト

この記事は (松屋 Advent Calendar 2016)http://www.adventar.org/calendars/1415 の2日目の記事です。
1日目は 私 (@owatan_)松屋、松乃家 (松のや) に見る朝定食の違い でした。

さて、日々の松屋の記録は基本的にツイートして履歴として残すわけですが、残したツイートを溜めておくのに便利な Twilog という外部サービスがあります。 Twilog の機能として、 Twilogに保存されているツイートを、指定の形式でダウンロードする というものがあります。 これは、以下の形式で Twilog に保存されているツイートをダウンロードすることができます。

普段シェルスクリプトしか書かないので、上記の CSV ファイルとシェルスクリプトを用いて、日々の松屋の記録を解析してみます。

はじめに

Twilog から保存した、 CSV (UTF-8) におけるツイートの履歴は、以下のようになっています。

"{{tweet_id}}", "{{yyMMdd}} {{HHmmss}}","{{tweet}}"
"803788675569987584","161130 113208","賄いポン酢 (300g) http://pic.twitter.com/ykpP4Ls48u"

なので、まずはこれをシェルスクリプトで使いやすくするために下準備をします。 なお、 松屋に関連するツイートしか解析しないので、多少の厳密さは犠牲にして スクリプトを書きます。

  • 日付, 時間ベースで解析したいので、"{{yyMMdd}} {{HHmmss}}" となっている部分を "{yyMMdd}}","{{HHmmss}}" とする
  • 集計対象は 2016年1月1日から2016年11月30日までのツイート
% cat tweets.csv | sed "s/\ /\",\"/""" | \
    sed "s/\"//g" | awk -F "," '{if (160101 <= $2 && $2 <= 161130) print}'

### 上記をいちいち書くのは面倒なので、処理は *1 と略します

上記にて得られたツイートをゴリゴリ処理していきます。

今年 (11/30まで) は何回 #matsuyanow したか

% grep -E "安定の.*#matsuyanow.*\(.*swarmapp.com" | wc -l
355

1月1日から11月30日までは335日なので、平均して1日1回以上は松屋に行っていた計算になります。

松屋と松乃家のどちらに何回行っていたか

% *1 | grep -E "安定の.*#matsuyanow.*\(@ 松屋.*swarmapp.com" | wc -l
107

% *1 | grep -E "安定の.*#matsuyanow.*\(@ 松(乃家|のや).*swarmapp.com" | wc -l
248

松乃家には松屋の約2.5倍行っているようです。
やっぱり松乃家が好きだってはっきりわかんだね。

いつの時間帯によく #matsuyanow しているか

cat tweets.csv | sed "s/\ /\",\"/""" | \   12/03 23:41:06
    sed "s/\"//g" | awk -F "," '{if (160101 <= $2 && $2 <= 161130) print}' | \
    grep -E "安定の.*#matsuyanow.*\(.*swarmapp.com" | awk -F "," '{print $3}' | \
    cut -b1-2 | sort | uniq -c | sort -r
    
  65 07
  53 21
  51 13
  45 06
  29 14
  18 12
  16 22
  15 19
  14 20
  11 23
   7 18
   7 16
   5 17
   5 15
   4 10
   4 09
   3 11
   3 08

ということで最多は7時台の 65 回, 最小は 8時台, 11時台の 3 回でした。

他にも分析できるような記録はありますが、これはまた次回に!(Advent Calendar の日数稼ぎ)

© 2014 おわたん All Rights Reserved.