006 Linux 命令三剑客之-grep

006 Linux 命令三剑客之-grep

01 一起来认识 grep!

Linux 命令三剑客,sed、grep、awk。

  • sed:擅长数据修改。
  • grep:擅长数据查找定位。
  • awk:擅长数据切片,数据格式化,功能最复杂。
    grep 可以说是这三个命令中的红人,是我们日常使用频率最高的命令,下面和锅锅一起来搞定它。

02 grep 命令常用可选参数

  • -n # 显示行号。
  • -i # 不区分大小写。
  • -c # 统计匹配行,命中查找字符串的总行数。
  • -v # 显示不包含匹配文本的所有行。
  • -r # 递归处理。
  • -E # 使用正则表达式作为匹配进行查找(注:-e 没有-E 支持的完整)。
  • –include # 指定匹配的文件类型。
  • –exclude # 过滤不需要匹配的文件类型。
    使用示例:

  • grep -i “error” info.log

  • grep -in “error” info.log #不区分大小写,并显示行号。

03 grep 同时查找多个文件

  1. grep -in “key” info.log warn.log # 从文件info.log 和 warn.log 查找字符串”key”,不区分大小写,并显示行号。
  2. grep -n “key” * # 查询当前目录下所有文件中包含字符串”key”,并显示对应的行号。

04 grep 递归查找

前面已经总结过,-r/R参数,即 recursion,递归的意思。

  • grep -rn “key” * # 递归查询当前目录及其子目录所有文件中包含字符串”key”,并显示对应的行号。

05 grep 查找对应字符前后 n 行

  • grep -a10 “bug” info.log #查看”bug”字符后的10行,a->after。
  • grep -b10 “bug” info.log # 查看”bug”字符前的10行,b->before。
  • grep -c10 “bug” info.log # 查看”bug”字符前后各10行。

06 grep 常用组合命令示例

  • history|grep rm # 查找历史命令中执行了哪些删除命令。
  • cat *.log | grep ‘exception’ # 查找当前目录下所有log日志中的exception字符行。
  • ps -ef|grep java # 此命令为一般运维中最常用命令,查询linux进程中是否运行了此程序。
  • rpm -qa |grep yum # 查询linux下是否有安装过此rpm包。
  • grep -En ‘^2020’ info.log # 使用正则表达式查找,查找以 2020 开头的行,并显示其行号。
  • grep -rn “warn” * –include “*.log” # 递归查询当前目录及其子目录所有log类型文件中包含字符串”warn”,并显示对应的行号。
  • netstat -nap|grep -E “6651”|grep -E “203.130.41.24” # 多个条件过滤查找。
  • tail -1000f info.log | grep -E “aaa|bbb” # aaa 或 bbb 的条件都可以搜索到,这个命令实践中,滚动实时查看日志很常用。
  • tail -10000f info.log |grep ‘check’ >> call.log # 查找,并把符合规则的输出到对应文件中
  • grep -E ‘keyword1.*keyword2’ info.log # 多个关键字同时出现查找过滤
  • grep -E ‘^Error’ info.log |grep ‘failed’|awk -F ‘ ‘ ‘{print $10}’ # 查找以 Error 开头,过滤包含 failed 的行,并以空格分隔,输出第10个的内容

07 grep 相关的拓展命令

  • pgrep:查找正在运行的程序,pgrep 是 grep 的扩展功能,同样的还有 egrep、fgrep。
  • egrep:扩展正则表达式,相当于grep –E。
  • fgrep:不识别解析正则表达式,一般很少用。

08 小结

  • grep 命令,擅长查找字符串,正向查找,反向查找,正则查找,多文件查找,递归查找等。
  • grep 查找对应字符前后 n 行,对大日志检索关键字时比较有用。此外 grep 还可以配合其他命令一起大展身手!配合正则表达式,可以更加灵活的实现查找功能,正则表达式相关的内容前面的文章有一些总结。

「不甩锅的码农」原创,转载请注明来源,未经授权禁止商业用途!同名 GZH 请关注!

Original: https://www.cnblogs.com/bilahepan/p/15845049.html
Author: 不甩锅的码农
Title: 006 Linux 命令三剑客之-grep

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/524136/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • How to show or hide views within a layout

    Android programming: mode selection and switching using a single activity, Show or hide vi…

    Linux 2023年6月13日
    080
  • KVM 虚机镜像操作, 扩容和压缩

    qemu-img命令 创建镜像 qemu-img create 创建一个设备空间大小为10G的镜像 qemu-img create -f qcow2 centos7-guest.q…

    Linux 2023年5月27日
    087
  • Python eval()函数

    The eval() takes three parameters: expression – this string as parsed and evaluated …

    Linux 2023年6月8日
    0100
  • 七种方案!探讨Redis分布式锁的正确使用姿势

    日常开发中,秒杀下单、抢红包等等业务场景,都需要用到分布式锁。而Redis非常适合作为分布式锁使用。本文将分七个方案展开,跟大家探讨Redis分布式锁的正确使用方式。如果有不正确的…

    Linux 2023年5月28日
    090
  • docker save与docker export实现docker镜像与容器的备份

    本来想写一篇关于docker save/export/commit/load/import之间的关系的文章,后来看了看,已经有很多人写过了,我就不做重复工作了。 参见: docke…

    Linux 2023年6月6日
    0111
  • Linux基础和命令

    Linux的哲学思想 优势 一切都是一个文件。(包括硬件,文本,二进制,源代 码) 系统中拥有小型,单一用途的程序。(一个程序只负责 做好自己的本职工作) 当遇到复杂任务,通过不同…

    Linux 2023年6月6日
    097
  • c++的bind使用方法

    c++的bind使用方法 除了容器有适配器之外,其实函数也提供了适配器,适配器的特点就是将一个类型改装成为拥有子集功能的新的类型。其中函数的适配器典型的就是通过 std::bind…

    Linux 2023年6月14日
    095
  • 图解固件、驱动、软件的区别

    大家好,我是良许。 不管我们使用什么操作系统,无论是 Windows、macOS 还是 Linux ,里面都安装了许多软件、驱动程序和固件。但是,这三者概念有区别呢? 我在朋友圈做…

    Linux 2023年5月27日
    096
  • Xshell Win10不能直接拖文件进行文件传输解决办法

    centos安装了 lrzsz后, xshell还是无法直接从win10中拖文件 到centos。 需要修改win10的注册表。 见: https://blog.csdn.net/…

    Linux 2023年5月28日
    098
  • NoteOfMySQL-07-索引

    1. 索引概述 创建索引的目的是为了优化数据库的查询速度,不添加索引的情况下需要遍历所有数据才能进行删、查、改等操作。 2. 索引存储类型 存储类型 支持的存储引擎 B型树(BTR…

    Linux 2023年6月14日
    093
  • 总结

    门诊:11张 张张是主表,主表之王是患者信息住院:12张 张张由入院登记开始,外挂处方点评一张电子病历:12张 病历概要打头来,紧接门(急)病历,急诊留观放尾中,住院病历放最后检验…

    Linux 2023年6月13日
    0112
  • PyTorch 介绍 | TRANSFORMS

    数据并不总是满足机器学习算法所需的格式。我们使用 transform对数据进行一些操作,使得其能适用于训练。 所有的TorchVision数据集都有两个参数,用以接受包含trans…

    Linux 2023年6月16日
    0146
  • 系统初始化

    一般系统安装好后,按照自己习惯定义 csharp;gutter:true;</p> <h1>alias</h1> <p>echo &…

    Linux 2023年6月7日
    058
  • Windows 域控配置时间同步

    此功能是因内网时间与互联网时间不同步,需我们手动指定互联网NTP服务器来同步时间。一般默认情况下,加域客户端同步的是域主机的时间。如果域控的主机时间不准的话,那么域内的客户端也就随…

    Linux 2023年6月8日
    0154
  • 学生管理系统(初级)

    #include #include #include #define Size sizeof(struct Student) struct Student *p = NULL; t…

    Linux 2023年6月7日
    0106
  • redis分享PPT材料

    上次在公司类做了一个redis分享,特别想把ppt上传上来,好像博客园不支持,那就截图把 1.简介 redis是什么: redis是一个nosql(not only sql不仅仅只…

    Linux 2023年5月28日
    079
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球