2

我有一些问题,我没有找到,也不知道如何在我的脚本中实现良好的排序。我想对一些输入字符串进行排序,向我展示冗余(一些重复),然后从这里返回最大重复的行,如果我有更多相同的重复,例如

输入 :

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

我尝试了一些其他的论点,但我没有找到解决方案。

对不起我的英语,请有人可以帮助我吗?

4

4 回答 4

3

这可能对您有用:

 sort | uniq -c | sort -nrs | head -1
于 2012-05-03T16:52:08.620 回答
1
sort | uniq -c | sort -k1nr -k2 | head -1

其中-k1nr表示在第一列上按数字排序并反向(从高到低)
-k2表示在第一个键相等的情况下,按 column2 排序(按字母顺序)

于 2012-05-03T16:49:25.983 回答
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
于 2012-05-03T16:55:51.783 回答
0
sort | uniq -c | sort -nr | awk '{if(a&&a!=$1){print a,b;exit;}a=$1;b=$2}'
于 2012-05-03T16:37:27.300 回答