0
点赞
收藏
分享

微信扫一扫

使用Shell脚本统计文件中IP出现的次数

使用Shell脚本统计文件中IP出现的次数

首先准备文件demo.txt,内容如下:

192.168.41.20
192.168.41.21
192.168.41.22
192.168.41.23
192.168.41.24
192.168.41.25

统计出现次数最多的ip次数:

cat demo.txt | awk '{print $2}' | sort | uniq -c | sort -n -r | head -n 1

注:

awk '{print $2}':取数据的第2域(第2列),第一列是标号(1,2,3...),第二列是ip地址

sort:对IP部分进行排序。
uniq -c:打印每一重复行出现的次数。(并去掉重复行)
sort -n -r:按照重复行出现的次序倒序排列。
head -n 1:取排在第一位的ip地址

统计netstat -ntu命令的结果中出现次数最多的IP地址:

执行命令 netstat -ntu,显示结果如下:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:8152 127.0.0.1:4193 TIME_WAIT
tcp 0 0 127.0.0.1:8152 127.0.0.1:4192 TIME_WAIT
tcp 0 0 127.0.0.1:8152 127.0.0.1:4196 TIME_WAIT
tcp 0 0 127.0.0.1:8152 127.0.0.1:4199 TIME_WAIT
tcp 0 0 127.0.0.1:8152 127.0.0.1:4201 TIME_WAIT
tcp 0 0 127.0.0.1:8152 127.0.0.1:4204 TIME_WAIT
tcp 0 0 127.0.0.1:8152 127.0.0.1:4207 TIME_WAIT
tcp 0 0 127.0.0.1:8152 127.0.0.1:4210 TIME_WAIT
tcp 0 0 192.168.32.62:41682 192.168.47.27:5431 TIME_WAIT
tcp 0 0 192.168.32.62:41685 192.168.47.27:5431 TIME_WAIT

使用脚本命令进行统计:

netstat -ntu | tail -n +3|awk '{ print $5}' | cut -d : -f 1 | sort | uniq -c| sort -n -r | head -n 5

统计结果:

127.0.0.1
192.168.47.27

注:

tail -n +3 :去掉上面用红色标明的两行。

awk '{ print $5}':取数据的第5域(第5列)

cut -d : -f 1 :取蓝色部分前面的IP部分。

sort:对IP部分进行排序。

uniq -c:打印每一重复行出现的次数。(并去掉重复行)

sort -n -r:按照重复行出现的次序倒序排列。

head -n 5:取排在前5位的IP 

原文转载自:https://blog.csdn.net/xiamoyanyulrq/article/details/81570652

grep 过滤 IP

以 secure 日志文件为例:

grep -o "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]" secure

egrep -o "([0-9]{1,3}\.){3}[0-9]" secure

以上两个是过滤出具体的IP来 ,如果想统计IP ,可以 加上 sort 和uniq 命令来统计 每个IP出现的次数并排序,下面的命令是过滤出含有IP的行,把该行现实出来 

grep -E  "([0-9]{1,3}\.){3}[0-9]" secure 
举报

相关推荐

0 条评论