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

作用分析

  • AWK对于取列非常的合适,支持正则

  • uniq对于AWK刚取出的列值进行计算出现次数并去重

  • sort对于uniq出的出现次数进行升降排序,这样就按照出现次数频率高低进行排序了

  • head可以取前n行进行显示

处理示例:去除下列IP中出现频率最高的3个IP

[root@localhost ~]# cat 123192.168.1.1192.168.1.2192.168.1.3192.168.1.4192.168.1.5192.168.1.5192.168.1.5192.168.1.10192.168.1.20192.168.1.30192.168.1.40192.168.1.50192.168.1.60192.168.1.70192.168.1.1192.168.1.3192.168.1.4192.168.1.1192.168.1.2

第一次处理:

[root@localhost ~]# sort  123     ##第一次处理后,相同的数值出现在了一起192.168.1.1192.168.1.1192.168.1.1192.168.1.10192.168.1.2192.168.1.2192.168.1.20192.168.1.3192.168.1.3192.168.1.30192.168.1.4192.168.1.4192.168.1.40192.168.1.5192.168.1.5192.168.1.5192.168.1.50192.168.1.60192.168.1.70

第二次处理:

[root@localhost ~]# sort  123|uniq -c		##第二次处理出现了出现次数的记录3 192.168.1.11 192.168.1.102 192.168.1.21 192.168.1.202 192.168.1.31 192.168.1.302 192.168.1.41 192.168.1.403 192.168.1.51 192.168.1.501 192.168.1.601 192.168.1.70

第三次处理:

[root@localhost ~]# sort  123|uniq -c|sort -r		##第三次处理,对出现次数降序排序3 192.168.1.53 192.168.1.12 192.168.1.42 192.168.1.32 192.168.1.21 192.168.1.701 192.168.1.601 192.168.1.501 192.168.1.401 192.168.1.301 192.168.1.201 192.168.1.10

第四次处理:

[root@localhost ~]# sort  123|uniq -c|sort -r|head -n 3		##取出前三个3 192.168.1.53 192.168.1.12 192.168.1.4

真正排序难点在于AWK的取值,如何把IP全部规范的取出

关于Sort的选项可以参考