Awk

更便宜的sort -n |唯一的-c |排序-n

  • October 29, 2017

我有一個未排序的 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

使用單個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

要輸出按出現次數降序排序的記錄,請使用以下 GNU awk方法:

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

引用自:https://unix.stackexchange.com/questions/401296