Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何获得文件中一行的平均重复次数?_Linux_Command Line - Fatal编程技术网

Linux 如何获得文件中一行的平均重复次数?

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脚本,但我

假设我有一个包含五行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脚本,但我想知道是否可以使用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条线路。