Sort如何進行排序,如何根據出現次數取IP
阿新 • • 發佈:2018-02-27
sort uniq head 常用組合: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
Sort如何進行排序,如何根據出現次數取IP