使用awk统计文件中数字出现的频率

Val*_*tti 1 awk

我有以下文件:

1
1
2
3
3
3
4
4
5
5
5
5
Run Code Online (Sandbox Code Playgroud)

我想统计一个数字出现了多少次,频繁出现了多少次:例如,数字1出现2次,数字2出现1次,数字3出现3次,数字4出现2次,数字5出现4次; 输出将是一个两列文件,其中第一列表示数字在该列中出现的次数,第二列表示数字重复的次数,:

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
Run Code Online (Sandbox Code Playgroud)

我希望输出示例文件可以帮助理解......

Ben*_*ueg 6

uniq需要排序输入,因为它只比较连续行:

uniq -c
Run Code Online (Sandbox Code Playgroud)

因此,如果尚未排序:

sort | uniq -c
Run Code Online (Sandbox Code Playgroud)

您给定示例的输出将是:

  2 1
  1 2
  3 3
  2 4
  4 5
Run Code Online (Sandbox Code Playgroud)

  • 它确实很重要,但与OP想要的不符:“2 2”因为“4”和“1”出现了两次。 (2认同)