本帖最后由 思想之翼 于 2025-1-15 10:05 编辑
1.txt 格式如下:
331 445 550 567 0000
008 023 327 550 689
142 350 331 449 550 653
0 0 0 0 0 0 0 0 0 0 0 0
X Y Z
A A A A A A A A A A A A A
下述代码将 1.txt 数值按出现次数排序:- gawk "{for(i=1;i<=NF;i++){if(!a[$i]++)b[++j]=$i;if(0+N<a[$i])N=a[$i]}}END{for(k=1;k<=j;k++)c[a[b[k]]]=c[a[b[k]]]b[k]\" \";s=asorti(c,tA);for(i=s;i>0;i--)print c[tA[i]]}" 1.txt > 2.txt
复制代码 2.txt 排序结果错误:
550
331
A
0
445 567 0000 008 023 327 689 142 350 449 653 X Y Z
【问题】如何实现正确的排序结果:
A (出现13次)
0 (出现12次)
550 (出现3次)
331 (出现2次)
445 567 0000 008 023 327 689 142 350 449 653 X Y Z (出现1次) |