好玩的统计

经常聊天么?想知道你最常碎碎念的话是啥么?

假如你有一份聊天记录,格式是大概是说话人+冒号+内容+tab+时间,如下:

我:哈哈 2046-4-1
她:你好 2046-4-1
我:我不好 2046-4-1
她:你好 2046-4-1
我:··· 2046-4-1
她:你好 2046-4-1
我:扁 2046-4-1
她:哦 2046-4-1
我:··· 2046-4-1
—-未完待续—-

后面会是啥,不知道,反正是一大堆有聊无聊的话,也可能不止“我”和“她”。我们现在来统计一下这个聊天记录里的碎碎念达人。
把聊天记录存到一个文件里,比如suisuinian.log,然后运行如下命令:

cat suisuinian.log |awk '{print $1}'|sort|uniq -c|awk '{printf ("%010d %s\n",$1,$2)}'|sort -r +0 -1|head -n 3|perl -n -e '/([0]{0,10})(.*)/ && print “$2\n”‘

恩,前3位的碎碎念句子就出来了。

3 她:你好
2 我:···
1 我:扁

“她”说了3次“你好”,“我”说了2次“”~

说明:
cat suisuinian.log 获取内容
awk ‘{print $1 }’ 打印出聊天内容(去掉时间)
sort 排序
uniq -c 去除重复并计算数目
awk ‘{printf (”%010d %s\n”,$1,$2)}’ 将数目用0补齐10位
sort -r +0 -1 按数目排序
head -n 3 取前3位
perl -n -e ‘/([0]{0,10})(.*)/ && print “$2\n”‘ 将用于补齐的0去掉

很好的linux,很好的工具~

3条评论

  1. 他吉:

    shell是和ppt一样有前途的工具~ 修炼 :emtf:

  2. 他吉:

    玩了一会,觉着很有意思~ 又受益了~

  3. cox:

    :???:

发表评论