linux使用grep条件搜索大文件的行数等操作
一、前言
最近需要查询大日志文件的时候,每次打开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:15:[00-59]" |wc -l 120
查询25/Nov/2019:15
时的所有数据,那么15时
后面的分钟数就是00-59
(3)多个条件之间可以使用管道连接,查询同时符合两个条件的行数
cat /data/weblogs/xxx.log |grep "25/Nov/2019:15:[00-59]" |grep "GET /pixel.jpg?"|wc -l 120
(4)查询符合条件1或者符合条件2 的行数
cat /data/weblogs/xxx.log |grep -E "25/Nov/2019:15:[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 infowill 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]|\b)((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]|\b)' xxx.log | sed -nr 's/([^0-9]|\b)(([0-9]{1,3}\.){3}[0-9]{1,3})([^0-9]|\b)/\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 -c2 99.203.87.1032 99.203.87.1424 99.203.87.1458 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:15:[00-59]" |grep "GET /pixel.jpg?"|grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}"|wc -l
1110
感觉这些查ip的方法都差不错,因为日志文件一直在增大,所以查出来的结果也不一样,查的速度也比较慢,可能是文件太大了,在此记录一下,总有用得着的时候。
end
linux使用grep条件搜索大文件的行数等操作相关推荐
- linux shell 查找某字符串 在文件的行数
查找某字符串 有的时候,我们需要分析日志来排查错误,但是日志文件特别大,打开肯定是很慢的,也是没法接受的,我们需要的是快速定位错误出现的位置,并定向取出错误信息. 快速定位某个字符串在某文件中出现的行 ...
- 如何在Python中便宜地获取大文件的行数?
我需要在python中获取一个大文件(数十万行)的行数. 内存和时间最有效的方法是什么? 目前,我这样做: def file_len(fname):with open(fname) as f:for ...
- java高效获取大文件的行数
方式1 : 利用LineNumberReader public static int getFileLineNum(String filePath) {try (LineNumberReader li ...
- Linux运维实战|大文件切割
介绍 日常工作中需要对日志文件进行分析,当日志文件过大时,Linux中使用vim.cat.vim.grep.awk等这些工具对大文件日志进行分析将会成为梦魇,具体表现在: 执行速度缓慢,文件内容需要加 ...
- linux如何找大文件夹,Linux系统中如何查找大文件或目录文件夹的方法
Linux系统中如何查找大文件或文件夹的方法 在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整 ...
- Linux系统中如何查找大文件或目录文件夹的方法
Linux系统中如何查找大文件或文件夹的方法 在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整 ...
- 【linux】使用sed删除大文件中的指定行
[linux]使用sed删除大文件中的指定行 引言: 最近在清洗数据时遇到一个超大的文件,需要删除其中不符合数据要求的指定行.使用之前写好的python脚本清洗速度太慢,于是检索了许多linux文件处 ...
- 【Shell牛客刷题系列】SHELL1 统计文件的行数:学习wc命令和文本三剑客awk、grep、sed命令
该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...
- python读取txt文件的行数_python读取txt文件符合条件的行数-女性时尚流行美容健康娱乐mv-ida网...
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 关系网图 pyth ...
最新文章
- java实现fread_fread函数读取到的数据和实际数据不一样
- logic:equal 标签的使用(转)
- python课程是学什么的-Python课程包括哪些内容?
- 1.7 理解 Dropout-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- java 数组的冒泡排序
- 2017派卧底去阿里、京东、美团、滴滴带回来的面试题
- 用treeview遍历文件夹(vb)
- C++入门复习指南,C++Primer读书笔记
- 将Matlab换成Pycharm风格
- LabVIEW在快速传输速率下丢失UDP数据包
- 【一起学生信】群体结构图形—structure堆叠图
- 毕业设计 Stm32云平台的智能病房监控系统
- 读书笔记-财务报表分析的目的
- STM32RTC简单万年历制作
- C语言——计算阶层求和
- SpringFox 学习
- 1393 股票的资本损益
- 用opencv识别路标(不准转弯)
- 供电频率高对计算机机房危害,供配电专业知识点
- oracle cdr是什么,CorelDRAW2017新增哪些功能?
热门文章
- 智慧点餐系统源码 扫码点餐小程序源码
- AGV调度系统实现(一)
- 怎样做一个iOS App的启动分层引导动画?
- vue详解(一)概述和基础语法
- 移动100m宽带慢的要死_家里拉了100M的宽带,为什么网速还是那么慢?
- 2013夏-一篇杂文
- 【论文翻译】The Quantum Internet: Networking Challenges in Distributed Quantum Computing
- 如何在Win10登录画面默认开启小键盘数字锁定?
- java ip 国家_java通过ip获取用户所在国家 | 学步园
- 10个谈话技巧让你平步青云