`sort -n | sort-n`の格安バージョン

`sort -n | sort-n`の格安バージョン

並べ替えられていないIPのリストがあり、それを数えて発生順に並べ替える必要があります。
使ってみましたが、sort -n | uniq -c | sort -n効果は良いのですが、もっと安くしたいのですが…果たしてawkこれは可能でしょうか?

入力する

1.1.1.1
2.2.2.2
1.1.1.1
3.3.3.3
2.2.2.2
1.1.1.1

出力

3 1.1.1.1
2 2.2.2.2
1 3.3.3.3

答え1

シングルアップロセス:

awk '{ a[$1]++ }END{ for(i in a) print a[i],i }' file

出力:

3 1.1.1.1
2 2.2.2.2
1 3.3.3.3

発生降順でレコードを出力するには、次の GNU を使用します。アッ方法:

awk 'BEGIN{ PROCINFO["sorted_in"]="@val_num_desc" }{ a[$1]++ }
     END{ for(i in a) print a[i],i }' file

関連情報