Linux 如何获得文件中一行的平均重复次数?
假设我有一个包含五行IP地址的文件:Linux 如何获得文件中一行的平均重复次数?,linux,command-line,Linux,Command Line,假设我有一个包含五行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脚本,但我
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脚本,但我想知道是否可以使用smart oneliner来完成。在标准shell中,我会这样做:
uniq -c intputfile | awk '{count++;sum+=$1} END{print count,"lines.","Average is:",sum/count}'
又快又脏:
echo `cat test.txt | wc -l` / `uniq test.txt | wc -l` | bc -l
您可能需要先安装
bc
(进行浮点计算)。ip地址是否写入.txt文件中?如果是,是什么格式?这是我用Apache的access.log创建的文本文件。每条线路一个IP,1005条线路。