`sort -n | 的较便宜版本uniq-c|排序-n`

`sort -n | 的较便宜版本uniq-c|排序-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过程:

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

要输出按出现次数降序排列的记录,请使用以下 GNUawk方法:

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

相关内容