用awk写出文件每行的元素数量及其重复次数

Val*_*tti 0 bash shell awk

我有一个包含所有不同整数的文件,其中每行可能有不同的长度,如下所示:

1 2 3 4 5
16 7 8
9 10 101 102 13 14
15 6 17 
24 28 31 30 18
Run Code Online (Sandbox Code Playgroud)

我想在输出中打印一行所呈现的元素数量以及每行有相同元素数量的次数; 这个例子的输出应该是:

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

在第一列中,每行有元素数,第二列是呈现相同元素数的行数.

文件中的第一行有5个元素,还有第5行等.

Chr*_*our 5

打印字段数的计数:

$ awk '{a[NF]++}END{for(k in a)print k,a[k]}' file
5 2
6 1
3 2
Run Code Online (Sandbox Code Playgroud)

管道到sort订购输出:

$ awk '{a[NF]++}END{for(k in a)print k,a[k]}' file | sort
3 2
5 2
6 1
Run Code Online (Sandbox Code Playgroud)