利用shell脚本统计文件中出现次数最多的IP

比如有如下文件test.txt

1  134.102.173.43

2  134.102.173.43

3  134.102.171.42

4  134.102.170.9

要统计出现次数最多的IP可以利用以下shell脚本:

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

[原创]统计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
8 127.0.0.1
2 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

时间: 2024-12-24 07:04:47

利用shell脚本统计文件中出现次数最多的IP的相关文章

利用shell脚本统计代码行数

刚毕业那会儿有一次去一家台湾公司面试,问我写过多少行代码.从没想过这个问题,粗略算了算,随口说道:大概几十万行吧.最近整理资料,看着eclipse左边满满的列表,想起了这个事.倒底总共有多少行代码?--这事如果在windows下要么找工具,要么编程序.又想到linux里的命令统计很方便,于是打算用个命令来完成.可分析来分析去,恐怕一行命令是搞不定的--又涉及递归查找,又涉及指定文件类型,又涉及对文件全路径进行操作.最终还是用了一段shell脚本才达到目的. #!/bin/bash declare

统计字符串中出现次数最多的字母的次数,如果有多个重复的,都求出

package javastudy; import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.TreeSet; public class Test1 { public static void main(String [] args){ String str = "aacdggdhrdhgsjrsovoiwimtcpiq"; new Test

使用shell脚本往文件中加一列

上午大学同学问了我一个脚本的问题,大概需求就是看到所有端口的开启情况,还要知道每个端口的应用程序路径,而且要和之前的数据齐平,就是再加一列数据.我腚眼一看,非常容易嘛,但由于当时忙,所以就说中午给他发过去,但到自己写的时候,各种问题啊,awk的用法找了又找,不得不说awk非常伟大,脚本如下: show_path.sh #!/bin/bash pid=`netstat -lntup |awk '{if (NR>2){print $7}}'|awk -F '/' '{print $1}'` for

shell脚本获取文件中key/value的小方法

方法有N种,awk.sad.grep.cut... 以上几种方式不写了,就写两个不太常用到的. 废话少说,直接上代码: cat a.txt aa.gif=aaaa.gif bb.gif=bbbb.gif cc.gif=cccc.gif 方法一: #!/bin/sh while read line do k=${line%=*} v=${line#*=} echo "$k : $v" done < a.txt 运行结果: aa.gif : aaaa.gif bb.gif : bbb

js 统计字符串中出现次数最多的字符?

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script> 7 8 var s="aaaabbbbssssssss"; 9 var fres={}; //用来记录所有的字符的出现频次 10 var mostFr

利用shell脚本或者php移动某个文件夹下的文件到各自的日期组成的目录下

背景是这样的:网站一开始访问量比较小,大家就把所有的图片文件上传到一个目录下(比如是/data/images/).后来访问量大了,图片也多了,这样就影响读取效率.所以有个这样的需求,把这些个图片文件移动到多个目录下,这个目录是图片的上传日期(就是文件属性中的修改日期filemtime)组成的.比如2012-12-20的修改日期,那么现在就该放在/data/images/2012/12/20的目录下. php有很容易的操作文件的函数,可以方便完成.当然也可以利用shell脚本完成. 用shell的

使用IndexOf统计文件中某一词语出现次数

1 #region 统计文件中某一词语出现次数. 2 3 while (true) { 4 Console.WriteLine("请输入要查询的词语:"); 5 string word = Console.ReadLine(); 6 string[] novelArr = File.ReadAllLines("xiyou.txt", Encoding.Default); 7 int count = 0;//计数变量 8 int index = 0;//每行的 初始索

统计文件中制定词汇出现的次数

统计文件中"牛客"出现的次数: grep -o "查找单词" "查找的文件"| wc -l grep -o "查找单词" "查找的文件": -o 表示精确匹配,没有-o,只会显示要查找单词所出现的那一行 来自为知笔记(Wiz)

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性

利用SHELL脚本来验证Oracle数据库RMAN备份集的有效性 作者:赵全文  网名:guestart 我们生产环境的Oracle数据库都做了RMAN备份,是采用了一周的RMAN备份保留策略:除了使用RMAN备份以外,我们还使用了爱数(Eisoo)备份软件来进行备份,可以说是做到了有备无患.可是,如果有一天,Oracle数据库由于主机层面硬件原因或是数据库层面的原因不能对外提供高可用服务的时候,假设数据丢了一大部分,我们只有用RMAN备份来进行恢复,再如果发现,RMAN备份失效了,那就往地缝里