我有一些问题,我找不到,我不知道如何在我的脚本中实现好的排序。我想对一些输入字符串进行排序,以显示冗余(一些重复),并从中返回最大重复行,如果我有更多相同的重复例如
输入:
qwe1
qwe1
wer2
wer2
wer4
输出://我想要什么
2 qwe1
input:
asd1
asd1
asd1
asd2
asd2
asd2
asd3
asd3
asd3
output: // What i want
3 asd1 // If I have a the same name return id of alphabeticall first
#!/bin/bash
sort -n|uniq -c -i | sort -dr | head -n1
我尝试了其他一些排序参数,但我找不到解决方案。
对不起我的英文,有人可以帮我这个吗?
答案 0 :(得分:3)
这可能对您有用:
sort | uniq -c | sort -nrs | head -1
答案 1 :(得分:1)
sort | uniq -c | sort -k1nr -k2 | head -1
其中-k1nr
表示对第一列进行数字排序和反向排序(从高到低)
和-k2
表示,在第一个键相等的情况下,按列2(按字母顺序)排序
答案 2 :(得分:0)
sort | uniq -c | sort -nr | awk '{if(a&&a!=$1){print a,b;exit;}a=$1;b=$2}'
答案 3 :(得分:0)
我认为这可以在一个单独的awk命令中完成。考虑一下:
awk '{freq[$0]++;} END {for (var in freq)
{if (freq[var]>max || (freq[var]==max && var < item))
{max=freq[var]; item=var} } print max, item; }' file.txt