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/683500/

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

(0)

大家都在看

  • 一张动图,让你明白时域和频域的关系

    看明白了这张图,就可以了解为什么既要做时域分析也要做频域分析了吧。 简单总结下,时域和频域的关系如下: 时域是信号在时间轴随时间变化的总体概括。 频域是把时域波形的表达式做傅立叶等…

    技术杂谈 2023年5月31日
    092
  • OpenStack 安装 Keystone

    OpenStack 安装 Keystone 本篇主要记录一下 如何安装 openstack的 第一个组件 keystone 认证授权组件 openstack 版本 我选的是quee…

    技术杂谈 2023年7月11日
    079
  • 【转】iOS URL Scheme — 不错

    由于”沙盒”机制的存在,iOS系统中的app都处于一个相对封闭的环境中,app之间的不管是合理还是不合理的信息共享基本都被阻隔掉了,当然苹果这样做的目地也很…

    技术杂谈 2023年6月1日
    099
  • 「萌新指南」SOA vs. 微服务:What’s the Difference?

    实话实说,在我还没有实习之前,我是连 SOA 是啥都不知道的,只听说过微服务,毕竟微服务实在太火了,想不知道都难,我觉得实习的时候肯定也是微服务,进组之后发现是 SOA 架构,当时…

    技术杂谈 2023年7月24日
    086
  • Spring为list集合和map集合类型赋值

    1.通过List标签在property标签中直接进行赋值 2.通过配置一个list集合类型的bean,需要使用util的约束(直接写,可以自动导入) 然后再通过id引用该list集…

    技术杂谈 2023年7月11日
    076
  • C#实现TabControl选项卡竖着排列,控件文字横向显示

    新建一个tabControl,名字不用修改,选中tabControl1,修改其以下属性1、DrowMode=OwnerDrawFixed //2、Alignment=left //…

    技术杂谈 2023年5月30日
    0106
  • 看错题系列 cf622C C2. Skyscrapers (hard version)

    看错题系列 cf622C C2. Skyscrapers (hard version) 看成了 对于所有的i不能满足a[i-1]>a[i]&&a[i] Ori…

    技术杂谈 2023年6月1日
    095
  • 这 BUG,绝了

    上周只上了三天班,但我也丝毫不敢懈怠,BUG 更是一个也没少写。 看着满屏幕的 ERROR,我陷入沉思。为什么我写的代如此烂,无法像大牛们写的那般优雅? 越想越自卑,越想越抑郁。我…

    技术杂谈 2023年6月22日
    098
  • 用python实现markdown转html

    1. 前言 现在markdown已经是非常常用的记录工具了,整齐的排版、代码高亮、图片表格样样齐全,同时也支持html标签,是非常好用的一种工具(语法)。 那么今天来分享一下使用p…

    技术杂谈 2023年7月11日
    0106
  • 车牌号正则表达式

    车牌号正则表达式为 测试代码如下 php $reg = "/[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领]{1}[A-Z]{1}[A-Z0-9]{…

    技术杂谈 2023年5月31日
    0102
  • Ajax学习笔记(二)

    二、prototype库具体解释 1、prototype库的使用 //导入下载好的prototype.js文件 //在自己的js中直接使用Prototype对象 document….

    技术杂谈 2023年5月30日
    093
  • [转载]监控距离与镜头焦距和放大倍数之间关系

    在视频监控的实践中,我们经常会碰到这个问题:我想看清楚100米处的人,应该选用怎样的变焦镜头?选用多少倍变焦的球机?焦距多少才比较合适? 根据镜头透射的原理:f/D=h/H 其中:…

    技术杂谈 2023年5月30日
    0113
  • ==和equals的区别是什么?

    ==:基本类型比较的是值的大小,引用类型比较的是内存地址,是不是同一个对象,equals:默认比较同一个对象的内容 == 和 equals 的区别是什么? == : 它的作用是判断…

    技术杂谈 2023年7月24日
    079
  • WinFi一直Loading的解决办法,与其它抓包工具

    WinFi一直Loading的解决办法,与其它抓包工具 来源 https://www.acwifi.net/20163.html WinFi inSSIDer NetSpot Ek…

    技术杂谈 2023年5月31日
    0137
  • 力扣刷题之路-括号匹配问题

    括号匹配问题在力扣中有好几道,简单的括号匹配问题即一个左括号需要对应一个右括号,判断是否匹配或者需要加入几个左括号或右括号,此时的问题比较简单,当字符串中的字符只有一种类型的括号时…

    技术杂谈 2023年7月11日
    098
  • 怎么计算Oracle的表一条记录占用空间的大小

    如何计算Oracle 的表一条记录占用空间的大小?如何计算Oracle 的表记录占用空间的大小?是把所有字段的大小都加起来吗?varchar(256),char,number算几个…

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