【发布时间】:2018-05-31 03:01:24
【问题描述】:
假设我有一个类似如下的文件:
Abigail 85
Kaylee 25
Kaylee 25
kaylee
Brooklyn
Kaylee 25
kaylee 25
我想找到重复次数最多的行,输出必须是该行。
我试过了
sort list | uniq -c
但我需要干净的输出,只需要最重复的行(在此示例中为 Kaylee 25)。
【问题讨论】:
假设我有一个类似如下的文件:
Abigail 85
Kaylee 25
Kaylee 25
kaylee
Brooklyn
Kaylee 25
kaylee 25
我想找到重复次数最多的行,输出必须是该行。
我试过了
sort list | uniq -c
但我需要干净的输出,只需要最重复的行(在此示例中为 Kaylee 25)。
【问题讨论】:
改善~
$ sort zlist | uniq -c | sort -r | head -1| xargs | cut -d" " -f2-
Kaylee 25
这有帮助吗?
【讨论】:
xargs。
xargs 也会抑制有效的连续空格。您可能需要删除xargs 并使用sed s/^\s\+[0-9]\+\s//' 等其他方法来删除计数列而不是cut
sort --version-sort 而不是sort -r。例如,--version-sort 将正确输出“351,51,5”,而-r 将输出“5,351,51”。
sort 没有-n(由answer below 指出)
恕我直言,这些答案都不能正确排序结果。原因是排序,没有-n,选项将像这样“1 10 11 2 3 4”等排序,而不是“1 2 3 4 10 11 12”。所以,像这样添加-n:
sort zlist | uniq -c | sort -n -r | head -1
当然,您可以将其通过管道传输到 xargs 或 sed,如前所述。
【讨论】:
awk-
awk '{a[$0]++; if(m<a[$0]){ m=a[$0];s[m]=$0}} END{print s[m]}' t.lis
【讨论】:
$ uniq -c list | sort -r | head -1 | awk '{$1=""}1'
Kaylee 25
这就是你要找的吗?
【讨论】: