当前位置:  开发笔记 > 编程语言 > 正文

Unix按列整数过滤

如何解决《Unix按列整数过滤》经验,为你挑选了1个好方法。

我试图阻止有许多端口25连接(垃圾邮件)的IP

我有以下命令:

netstat -an|grep :25| awk {'print $4'} | cut -d: -f1 | sort | uniq -c | sort -n

这产生如下输出:

      1
  1 127.0.0.1
  2 185.11.11.11
  10 185.11.11.22
  20 185.11.11.33
  50 185.11.11.44

我想只过滤第一列大于15的行.

谢谢



1> 小智..:

如果您不需要总连接数而只需要IP列表,则此行将执行:

netstat -an | awk '$4~/:25/{gsub(":25","",$4); s[$4]++; if(s[$4]==15){print $4}}'

$4~/:25/ 过滤包含':25'的行(相当于行中的grep)

gsub(":25","",$4) 从IP地址中删除端口号(字段4)

s[$4]++ 增加给定IP的计数器

if(s[$4]==15){print $4} 如果计数等于15,则打印IP

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有