我有以下文件:
1
1
2
3
3
3
4
4
5
5
5
5
我想计算一个数字出现的次数和次数是多少次:例如,数字1出现2次,数字2出现1次,数字3出现3次,数字4次出现2次5次四次;输出将是一个两列文件,其中第一列数字在列中出现的次数,第二列表示重复数字的次数,:
2 2 %(because the number 1 and number 4 appear 2 times and there are only 2 number that appear this often)
1 3
1 1
1 4
我希望输出示例文件可以帮助理解......
答案 0 :(得分:4)
uniq
需要排序输入,因为它只比较连续的行:
uniq -c
所以如果还没有排序:
sort | uniq -c
给出示例的输出将是:
2 1
1 2
3 3
2 4
4 5
答案 1 :(得分:2)
这一行应该给你结果:
awk '{a[$0]++}END{for(x in a)b[a[x]]++;for(x in b)print b[x], x}' file
包含您的数据:
kent$ cat file
1
1
2
3
3
3
4
4
5
5
5
5
kent$ awk '{a[$0]++}END{for(x in a)b[a[x]]++;for(x in b)print b[x], x}' file
1 4
1 1
2 2
1 3