一、前言
最近需要查询大日志文件的时候,每次打开vim,cat之类的都会卡死,但是需要查看符合条件的共有多少行数据,这颗愁死我了,下面列出一些常用的匹配查询命令。
二、常用的搜索命令
1、grep搜索
grep 参数 文件名 | head //从头查找 grep 参数 文件名 | wc- l //查看符合条件的有多少行 cat 文件名 |grep 参数$ //输出以该参数结尾的行内容
2、实例
(1)根据具体的参数来搜索行数
cat /data/weblogs/xxx.access.log |grep get /pixel.jpg?|wc -l 4102386
(2)部分正则查询
cat /data/weblogs/em.evony.com.access.log |grep 25/nov/2019[00-59] |wc -l 120
查询25/nov/2019:15 时的所有数据,那么15时后面的分钟数就是00-59
(3)多个条件之间可以使用管道连接,查询同时符合两个条件的行数
cat /data/weblogs/xxx.log |grep 25/nov/2019[00-59] |grep get /pixel.jpg?|wc -l 120
(4)查询符合条件1或者符合条件2 的行数
cat /data/weblogs/xxx.log |grep -e 25/nov/2019[00-59] |get /pixel.jpg?|wc -l 4098135简写: grep -e exp1|exp2|exp3 | wc -l参考:https://blog.csdn.net/lijing742180/article/details/84959963
3、grep是模糊查询
在使用grep搜索端口号的时候,查出来的结果不尽人意,什么牛鬼蛇神都查出来了,例子如下:
netstat -anp |grep -i '80'(not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)tcp 0 0 127.0.0.1:80 0.0.0.0:* listen - tcp 0 0 10.17.2.50:80 0.0.0.0:* listen - tcp 0 0 216.66.17.189:80 0.0.0.0:* listen - tcp 0 0 10.17.2.50:10050 10.17.13.2:33801 time_wait -
推荐个更好用的,具体查询80端口的使用情况,使用命令:
netstat -apn | awk '{split($4,arr,:); if(arr[2] == 80) print $0}'
一步到位,查出来的都是80端口的进程,十分好用。
============ 2019/12/5===================
三、搜索文件中的ip地址
1、匹配ip
grep -eo '([^0-9]|)((1[0-9]{2}|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9]).){3}(1[0-9][0-9]|2[0-4][0-9]|25[0-5]|[1-9][0-9]|[0-9])([^0-9]|)' xxx.log | sed -nr 's/([^0-9]|)(([0-9]{1,3}.){3}[0-9]{1,3})([^0-9]|)/2/p'|wc -l31116275
2、查询每个ip出现的次数
grep -e -o (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) xxx.log |sort|uniq -c 2 99.203.87.103 2 99.203.87.142 4 99.203.87.145 8 99.203.87.153
前面是出现次数,后面是ip
3、更精准的匹配ip
grep -e -o (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) xxx.log|wc -l32929372
4、模糊匹配ip
grep -e -o ([0-9]{1,3}[.]){3}[0-9]{1,3} xxx.log|wc -l32930309
5、多个条件查询ip,先根据限定条件获取指定的行数,然后再搜索ip的个数
cat xxx.log |grep 25/nov/2019[00-59] |grep get /pixel.jpg?|grep -e -o ([0-9]{1,3}[.]){3}[0-9]{1,3}|wc -l 1110
感觉这些查ip的方法都差不错,因为日志文件一直在增大,所以查出来的结果也不一样,查的速度也比较慢,可能是文件太大了,在此记录一下,总有用得着的时候。
关于Tanner Designer的一些基本介绍
协鑫朱共山拟入股宏光半导体, 第三代半导体产品能快将落地?
10种go语言编成中可能导致性能下降的坏实践
国内有数十个医疗大模型,大模型如何赋能智慧医疗
串口的工作原理
常用的大日志文件查询命令详解
burpsutie2023.2安装及破解教程
iPhone8外观大改变,这样的iPhone8你喜欢吗?
新工艺电磁流量计
联想的变与不变
移动端人像分割开发
5G时代链条上最关键的连接器是什么?
关于IP68级USB 2.0线缆组件和面板安装式耦合器的性能分析和介绍
中国联通AI科学家廉士国入选全球前2%顶尖科学家榜单
VPLC系列视觉运控一体机实现图像的几何变换
华砺智行开启智能汽车领域的“跨界”合奏
三星S9渲染图曝光: 摄像头部分变动较大
移动支付芯片的硬件架构详解
红外热成像模组如何应用于船舱漏水?
人工智能发展的四波浪潮