Sort如何進行排序,如何根據出現次數取IP

常用組合:sort+uniq+head+awk


作用分析

  • AWK對於取列非常的合適,支持正則

  • uniq對於AWK剛取出的列值進行計算出現次數並去重

  • sort對於uniq出的出現次數進行升降排序,這樣就按照出現次數頻率高低進行排序了

  • head可以取前n行進行顯示



處理示例:去除下列IP中出現頻率最高的3個IP

[root@localhost ~]# cat 123
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.5
192.168.1.5
192.168.1.10
192.168.1.20
192.168.1.30
192.168.1.40
192.168.1.50
192.168.1.60
192.168.1.70
192.168.1.1
192.168.1.3
192.168.1.4
192.168.1.1
192.168.1.2

第一次處理:

[root@localhost ~]# sort  123     ##第一次處理後,相同的數值出現在了一起
192.168.1.1
192.168.1.1
192.168.1.1
192.168.1.10
192.168.1.2
192.168.1.2
192.168.1.20
192.168.1.3
192.168.1.3
192.168.1.30
192.168.1.4
192.168.1.4
192.168.1.40
192.168.1.5
192.168.1.5
192.168.1.5
192.168.1.50
192.168.1.60
192.168.1.70

第二次處理:

[root@localhost ~]# sort  123|uniq -c		##第二次處理出現了出現次數的記錄
3 192.168.1.1
1 192.168.1.10
2 192.168.1.2
1 192.168.1.20
2 192.168.1.3
1 192.168.1.30
2 192.168.1.4
1 192.168.1.40
3 192.168.1.5
1 192.168.1.50
1 192.168.1.60
1 192.168.1.70

第三次處理:

[root@localhost ~]# sort  123|uniq -c|sort -r		##第三次處理,對出現次數降序排序
3 192.168.1.5
3 192.168.1.1
2 192.168.1.4
2 192.168.1.3
2 192.168.1.2
1 192.168.1.70
1 192.168.1.60
1 192.168.1.50
1 192.168.1.40
1 192.168.1.30
1 192.168.1.20
1 192.168.1.10

第四次處理:

[root@localhost ~]# sort  123|uniq -c|sort -r|head -n 3		##取出前三個
3 192.168.1.5
3 192.168.1.1
2 192.168.1.4


真正排序難點在於AWK的取值,如何把IP全部規範的取出

關於Sort的選項可以參考 http://www.cnblogs.com/ningvsban/p/3724306.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章