Linux中grep详解

Linux中grep详解一 grep 基本介绍全拼 Globalsearch 作用 文本搜索工具 根据用户指定的 模式 过滤条件 对目标文本逐行进行匹配检查 打印匹配到的行 模式 由正则表达式的元字符及文本字符所编写出的过滤条件 grep 命令是 Linux 系统中最重要的命令之一 功能是从文本文件或管道数据流中筛选匹配的行和数据 如果再配合正则表达式 功能十分强大 是 Linux 运维人员必备的命令 grep 命令里的匹配模式就是你想要

一、grep基本介绍

全拼:Global search REgular expression and Print out the line.

作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行.

模式:由正则表达式的元字符及文本字符所编写出的过滤条件﹔

Linux中grep详解
grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令

grep命令里的匹配模式就是你想要找的东西,可以是普通的文字符号,也可以是正则表达式

Linux中grep详解

二、正则表达式grep实践

首先先看一下这个测试文件的内容吧

Linux中grep详解

2.1、输出以 I 开头的行(不区分大小写)

Linux中grep详解

注: 这里的-i代表不区分大小写, -n代表显示匹配行和行号

2.2、输出以.结尾的行

Linux中grep详解

注: 因为.在这里有着特殊含义, 所以要用\转义一下, 如果不加转义字符的话, grep就会把它当做正则表达式来处理(.代表的含义是匹配任意一个字符)

2.3、$符号

  • 注意在Linux平台下, 所有文件的结尾都有一个$符
  • 可以利用cat -A 查看文件

Linux中grep详解

2.4、^$(代表空行的意思)组合符

找出文件的空行, 以及行号

Linux中grep详解

2.5、.点符号

“.”点表示任意一个字符, 有且只有一个, 不包含空行

Linux中grep详解

2.6、*符号

“*”表示找出前一个字符0次或一次以上

找出文件中i出现0次或多次的行和行号

Linux中grep详解

2.7、.*组合符

“.*”表示所有内容, 包括空行

Linux中grep详解

2.8、^.*t符 (含义: 以任意内容开头, 直到t结束)

Linux中grep详解

2.9、[abc]中括号

中括号表达式,[abc]表示匹配中括号中任意一个字符, a或b或c,常见的形式如下;

  • [a-z]匹配所有小写单个字母[A-Z]匹配所有单个大写字母
  • [a-zA-Z]匹配所有的单个大小写字母
  • [0-9]匹配所有单个数字
  • [a-zA-ZO-9]匹配所有数字和字母

匹配abc字符中的任意一个,得到它的行数和行号 

Linux中grep详解

2.10、grep的参数-o

使用”-o”选项, 可以值显示被匹配到的关键字, 而不是讲整行的内容都输出.

Linux中grep详解

显示出文章中有多少行有a

Linux中grep详解

“-c”只统计匹配的行数

2.11、[^abc]中括号中去反

[^abc]或[^a-c]这样的命令, “^”符号在中括号中第一位表示排除, 就是排除字符a,b,c

注: 出现再中括号里的尖角号表示取反

Linux中grep详解

三、扩展正则表达式grep实践

此处使用grep -E进行实践扩展正则, egrep官网已经弃用了

3.1、+号

+号表示匹配前一个字符1一次或多次,必须使用grep-E扩展正则

Linux中grep详解

3.2、?符

匹配前一个字符0次或1次

找出文件中包含gd或者god的行

Linux中grep详解

3.3、|符

竖线|再正则中是或者的意思

找出opt目录中txt结尾的文件, 其名字中包含a或者e, 不区分大小写(-i)

Linux中grep详解

3.4、()小括号

将一个或多个字符捆绑在一起, 当作一个整体进行处理

Linux中grep详解

3.5、{n,m}匹配次数

{n,m}:匹配前一个字符至少n次, 最多m次

{n,}: 匹配前一个字符至少n次, 没有上限

{,m}: 匹配前一个字符最多m次,可以没有

重复前一个字符各种次数, 可以通过-o参数显示明确的匹配过程

Linux中grep详解

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178498.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午5:09
下一篇 2026年3月26日 下午5:09


相关推荐

  • JavaScript【5】高级特性(作用域、闭包、对象)

    JavaScript【5】高级特性(作用域、闭包、对象)

    2021年11月24日
    39
  • 外国优秀网页html,200个优秀的国外设计网站推荐

    外国优秀网页html,200个优秀的国外设计网站推荐这个系列向大家推荐了 200 个优秀的国外设计网站 包括网页设计 名片设计 Logo 设计和包装设计等等 设计师们可通过这些网站收集的优秀设计作品来获取灵感 进而设计出更具有创意的作品 设计师们也可以把自己得意的作品提交到这些网站 分享给其它的设计师朋友 作品类型 Websitedesig 作品类型 Websitedesig 作品类型 Typographyi

    2026年3月18日
    2
  • 测试用例模板和例子[通俗易懂]

    测试用例模板和例子[通俗易懂]该范例已经包含一个测试用例的模板。项目/软件技术出口合同网络申领系统 (企业端)程序版本1.0.25   功能模块名Login 编制人  xxx   用例编号-TC-TEP_Login

    2022年7月17日
    14
  • AwesomeAI之图像超分(1)——RDN

    AwesomeAI之图像超分(1)——RDN原论文:ResidualDenseNetworkforImageSuper-Resolution数据集DIV2KDIV2K中共有1000张2K分辨率图像。其中,训练用图像800张,验证用图像100张,测试用图像100张。如何从HR(HighResolution,高分辨率)得到LR(LowResolution,低分辨率)图像?训练输入LR的图片使用该2k图片通过下面3种处理得到:BI方式:主要通过Bicubic下采样得到,缩小比例为x2,x3,x4;BD方式:先对原始图片做(7*7

    2022年6月18日
    33
  • BigDecimal 乘法除法

    BigDecimal 乘法除法code java 乘法 System out println newBigDecima 9 multiply newBigDecima 9 MathContext DECIMAL128 除法 System out println newBigDecima 96 11

    2026年3月17日
    2
  • nginx反向代理数据库端口安全吗(nginx反向代理80端口)

    nginx反向代理数据库端口使用场景如下:当数据库在服务器A并且处于外网无法直接访问时,此时同局域网下只有服务器B提供对外访问,客户能访问b却无法访问A的情况下,由于两台服务器处于同局域网,并且服务器A有端口是开放的,可以在服务器B内进行nginx反向代理安装nginx首先在服务器b内,安装nginx(docker化的也可以)如果是docker的nginx需要进入docker内的nginxdockerexec-it容器idbash一般nginx的配置文件在e

    2022年4月9日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号