Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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
在bash中查找文件中最频繁的行_Bash_Lines - Fatal编程技术网

在bash中查找文件中最频繁的行

在bash中查找文件中最频繁的行,bash,lines,Bash,Lines,假设我有一个类似如下的文件: Abigail 85 Kaylee 25 Kaylee 25 kaylee Brooklyn Kaylee 25 kaylee 25 我想找出重复次数最多的一行,输出的必须是刚好的那一行 我试过了 sort list | uniq -c 但我需要干净的输出,只是重复次数最多的一行(在本例中为Kaylee 25)。Kaizen~ $ sort zlist | uniq -c | sort -r | head -1| xargs | cut -d" " -f2-

假设我有一个类似如下的文件:

Abigail 85
Kaylee 25
Kaylee 25
kaylee
Brooklyn
Kaylee 25
kaylee 25
我想找出重复次数最多的一行,输出的必须是刚好的那一行

我试过了

sort list | uniq -c
但我需要干净的输出,只是重复次数最多的一行(在本例中为Kaylee 25)。

Kaizen~

$ sort zlist | uniq -c | sort -r | head -1|  xargs | cut -d" " -f2-

Kaylee 25
这有用吗

$ uniq -c list | sort -r | head -1 | awk '{$1=""}1'

Kaylee 25
这就是你要找的吗?

awk-

awk '{a[$0]++; if(m<a[$0]){ m=a[$0];s[m]=$0}} END{print s[m]}' t.lis

awk'{a[$0]++;如果(mIMHO),这些答案都不会正确排序结果。原因是排序,如果没有
-n
,选项将按如下方式排序“
1101234
”,而不是“
12341012
”。因此,添加
-n

sort zlist | uniq -c | sort -n -r | head -1

当然,您可以像前面所描述的那样通过管道将其传输到xargs或sed。

我认为在这里不需要调用
xargs
。xargs…它可以限制空格,简单明了。如果您喜欢,还可以使用translate!!
xargs
也会限制有效的连续空格。您可能需要重新设置移动
xargs
并使用其他方法,如
sed s/^\s\+[0-9]\+\s/'
删除计数列,而不是
cut
使用
sort--version sort
而不是
sort-r
。例如,
--version sort
将正确输出“351,51”,而
-r
将输出“5351”。请注意,此解决方案是错误的,因为第二个
排序
没有
-n
(由)有趣且不同的解决方案。另请参阅