假设我有一个包含IP地址的五行文件:
1.2.3.4
5.6.7.8
5.6.7.8
9.9.9.9
5.6.7.8
我需要找到每个IP连续重复的平均次数。在这个例子中,相同IP的每个序列的长度都是1,除了5.6.7.8,它重复两次。因此,对于这个例子,答案是(1 + 2 + 1 + 1)/ 4 = 1.25。
我想弄清楚用户在放弃或意识到他们应该对页面上方的Firefox插件安装警告作出反应之前,平均用户点击了我网站上的下载按钮的次数。
这可以在命令行中完成,还是我必须编写脚本来完成它?我可以为它编写一个ruby脚本,但我想知道它是否可以用一个聪明的oneliner来完成。
答案 0 :(得分:2)
在标准shell中我会这样做:
uniq -c intputfile | awk '{count++;sum+=$1} END{print count,"lines.","Average is:",sum/count}'
答案 1 :(得分:0)
又快又脏:
echo `cat test.txt | wc -l` / `uniq test.txt | wc -l` | bc -l
您可能需要先安装bc
(进行浮点计算)。