File 使用unix查找文件中最常用的条目

File 使用unix查找文件中最常用的条目,file,unix,gnuplot,File,Unix,Gnuplot,我有一个包含大约2000000个条目的文件——只有一列包含那么多条目,所有数字。我想快速找出文件中最常见的数字是什么。。有没有一种方法可以使用unix实现这一点? 我知道如何使用gnuplot来实现这一点,但这是一种有点乏味的方法,我想知道是否有一种更简单的方法,就是使用一些unix命令? 就像我的文件是 1 1 1 2 3 4 然后我想让它阅读文件,给我答案1,因为这是最常见的 我的第一个答案是建立一个直方图。如果可能值的范围足够小,则会有所帮助 一旦建立了直方图,只需在其中寻找最高的数量。

我有一个包含大约2000000个条目的文件——只有一列包含那么多条目,所有数字。我想快速找出文件中最常见的数字是什么。。有没有一种方法可以使用unix实现这一点? 我知道如何使用gnuplot来实现这一点,但这是一种有点乏味的方法,我想知道是否有一种更简单的方法,就是使用一些unix命令? 就像我的文件是

1
1
1
2
3
4

然后我想让它阅读文件,给我答案1,因为这是最常见的

我的第一个答案是建立一个直方图。如果可能值的范围足够小,则会有所帮助


一旦建立了直方图,只需在其中寻找最高的数量。

我的第一个答案是建立一个直方图。如果可能值的范围足够小,则会有所帮助


一旦建立了柱状图,只需在其中查找最高的数量。

您可以这样做:

$ cat file|sort -n|uniq -c|sort -n|tail -n 1|awk '{print $2}'

您可以这样做:

$ cat file|sort -n|uniq -c|sort -n|tail -n 1|awk '{print $2}'

sort test.txt | uniq-c | sort-rn | head-n1
应该会有所帮助。它会打印出现次数和最常用的次数,因此对于您的示例文件来说,它应该是:
31

sort test.txt | uniq-c | sort-rn | head-n1
。它会打印出现的次数和最常用的次数,因此对于您的示例文件,它将是:
31

,您可以编写一个非常简单的C实用程序来完成此操作。散列映射条目,边走边加。O(N)算法。N=条目数。您是像问题标题所暗示的那样使用命令行来寻求解决方案,还是像您的标签所说的那样接受C语言的程序,但在您的问题中没有提到此选项?文件的升序是否与您的示例相同?这些数字有多长?还有一些负数或浮点数?@LostAvatar很抱歉我取下了c标记,我的文件是由c程序生成的。。很抱歉,您可以编写一个非常简单的C实用程序来完成这项工作。散列映射条目,边走边加。O(N)算法。N=条目数。您是像问题标题所暗示的那样使用命令行来寻求解决方案,还是像您的标签所说的那样接受C语言的程序,但在您的问题中没有提到此选项?文件的升序是否与您的示例相同?这些数字有多长?还有一些负数或浮点数?@LostAvatar很抱歉我取下了c标记,我的文件是由c程序生成的。。很抱歉我已经有了一个直方图,但它并没有给我精确的数值。。这就是我在gnuplot中所说的单调乏味的意思,我必须做柱状图,并设置一个表格,将所有频率保存在一个文件中,诸如此类。。但是谢谢!是的,我已经有了一个直方图,但它并没有给我精确的数值。。这就是我在gnuplot中所说的单调乏味的意思,我必须做柱状图,并设置一个表格,将所有频率保存在一个文件中,诸如此类。。但是谢谢!这将输出每个数字的出现次数,但它不会过滤出出现次数最多的数字。是的,这对我来说很好,因为在我的文件中只有少数几个数字出现次数非常高,我自己可以很快区分出来。谢谢,它会输出每个数字的出现次数,但它不会过滤掉出现次数最多的数字。是的,这对我来说很好,因为在我的文件中只有少数几个数字出现次数非常高,我自己可以很快区分出来。谢谢