ファイル内で1~30の数字とその出現回数を検索しながら出力する方法

ファイル内で1~30の数字とその出現回数を検索しながら出力する方法

テキストファイルがありますhttps://1drv.ms/t/s!AjlMpzDMn2h7hWKyBGBxdhHXwjm8

最後の列には 1 から 30 までの数字が入ります。

1 から 30 までの各数字をリストするだけでなく、その列に数字が何回出現するかも表示するコードが必要です。

つまり、次のようになります

1=13
2=10
3=12 
.... up until 30.

現在、正しく修正すれば動作すると思われるコードがあります。

awk -F':' 'BEGIN{ split("sparkling fine fortified sweet white red", words, " ") }
       $3 in words{ c[$3]++ }
       END{ for(i in words) print words[i]"="c[i] }' file

答え1

シンプルなアプローチ (ファイルの最初の行を使用):

:> awk -F: '{ print $5; }' input | sort -n | uniq -c
 2 1
 5 2
 4 3
 5 4
 2 5

:> awk -F: '{ print $5; }' input | sort -n | uniq -c |
    while read count number; do echo "${number}=${count}"; done
1=2
2=5
3=4
4=5
5=2

awkのみ

:> awk -F: '{a[$5]++}; END { for(i=1;i<31;i++) printf "%2d=%d\n",i,a[i]; }' input
 1=2
 2=5
 3=4
 4=5
 5=2

関連情報