一、前言

最近需要查询大日志文件的时候,每次打开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条件搜索大文件的行数等操作相关推荐

  1. linux shell 查找某字符串 在文件的行数

    查找某字符串 有的时候,我们需要分析日志来排查错误,但是日志文件特别大,打开肯定是很慢的,也是没法接受的,我们需要的是快速定位错误出现的位置,并定向取出错误信息. 快速定位某个字符串在某文件中出现的行 ...

  2. 如何在Python中便宜地获取大文件的行数?

    我需要在python中获取一个大文件(数十万行)的行数. 内存和时间最有效的方法是什么? 目前,我这样做: def file_len(fname):with open(fname) as f:for ...

  3. java高效获取大文件的行数

    方式1 : 利用LineNumberReader public static int getFileLineNum(String filePath) {try (LineNumberReader li ...

  4. Linux运维实战|大文件切割

    介绍 日常工作中需要对日志文件进行分析,当日志文件过大时,Linux中使用vim.cat.vim.grep.awk等这些工具对大文件日志进行分析将会成为梦魇,具体表现在: 执行速度缓慢,文件内容需要加 ...

  5. linux如何找大文件夹,Linux系统中如何查找大文件或目录文件夹的方法

    Linux系统中如何查找大文件或文件夹的方法 在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整 ...

  6. Linux系统中如何查找大文件或目录文件夹的方法

    Linux系统中如何查找大文件或文件夹的方法 在Windows系统中,我们可以使用TreeSize工具查找一些大文件或文件夹,非常的方便高效,在Linux系统中,如何去搜索一些比较大的文件呢?下面我整 ...

  7. 【linux】使用sed删除大文件中的指定行

    [linux]使用sed删除大文件中的指定行 引言: 最近在清洗数据时遇到一个超大的文件,需要删除其中不符合数据要求的指定行.使用之前写好的python脚本清洗速度太慢,于是检索了许多linux文件处 ...

  8. 【Shell牛客刷题系列】SHELL1 统计文件的行数:学习wc命令和文本三剑客awk、grep、sed命令

    该系列是基于牛客Shell题库,针对具体题目进行查漏补缺,学习相应的命令. 刷题链接:牛客题霸-Shell篇. 该系列文章都放到专栏下,专栏链接为:<专栏:Linux>.欢迎关注专栏~ 本 ...

  9. python读取txt文件的行数_python读取txt文件符合条件的行数-女性时尚流行美容健康娱乐mv-ida网...

    女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 关系网图 pyth ...

最新文章

  1. java实现fread_fread函数读取到的数据和实际数据不一样
  2. logic:equal 标签的使用(转)
  3. python课程是学什么的-Python课程包括哪些内容?
  4. 1.7 理解 Dropout-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  5. java 数组的冒泡排序
  6. 2017派卧底去阿里、京东、美团、滴滴带回来的面试题
  7. 用treeview遍历文件夹(vb)
  8. C++入门复习指南,C++Primer读书笔记
  9. 将Matlab换成Pycharm风格
  10. LabVIEW在快速传输速率下丢失UDP数据包
  11. 【一起学生信】群体结构图形—structure堆叠图
  12. 毕业设计 Stm32云平台的智能病房监控系统
  13. 读书笔记-财务报表分析的目的
  14. STM32RTC简单万年历制作
  15. C语言——计算阶层求和
  16. SpringFox 学习
  17. 1393 股票的资本损益
  18. 用opencv识别路标(不准转弯)
  19. 供电频率高对计算机机房危害,供配电专业知识点
  20. oracle cdr是什么,CorelDRAW2017新增哪些功能?

热门文章

  1. 智慧点餐系统源码 扫码点餐小程序源码
  2. AGV调度系统实现(一)
  3. 怎样做一个iOS App的启动分层引导动画?
  4. vue详解(一)概述和基础语法
  5. 移动100m宽带慢的要死_家里拉了100M的宽带,为什么网速还是那么慢?
  6. 2013夏-一篇杂文
  7. 【论文翻译】The Quantum Internet: Networking Challenges in Distributed Quantum Computing
  8. 如何在Win10登录画面默认开启小键盘数字锁定?
  9. java ip 国家_java通过ip获取用户所在国家 | 学步园
  10. 10个谈话技巧让你平步青云