浅析grep工具相关选项及正则表达式

grep是linux下一个重要的文本处理工具之一,全称是Globel Search Regular Expression and Printing out the line(全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,是一个对行进行操作的搜索工作,它能使用正则表达式搜索文本,并把匹配的行打印出来。

grep家族包括grep、egrep和fgrep。 egrep表示扩展的grep,相比grep支持更多的元字符,"grep -E"相当于egrep。fgrep是fast grep,不支持元字符,但是搜索速度更快。grep搜索的结果被送到屏幕,不影响原文件内容。

可以使用man grep命令查看grep的相关文档:

(一)grep语法

grep的语法格式为: grep    [options]    ‘pattern‘     FILE
                                       命令      选项             模式           文件

note:grep不加引号直接过滤字符串;grep在进行模式匹配的时候必须加引号,单引和双引号都可以;grep在引用变量的时候必须加双引号。

(二)grep的相关选项

-r:递归的搜索
       -v:反向选取,只显示不符合模式的行

-o:只显示被模式匹配到的字符串,而不是整个行

-i:匹配时不区分大小写
      -A #:显示匹配到的行时,顺便显示后面的#行(#表示数值)
      -B #:前面的#行
      -C #:前后的#行
      -E:使用扩展的正则表达式

使用示例:

(三)正则表达式

利用grep找出符合某个模式(Pattern)的一类字符串就不得不使用正则表达式了。

正则表达式(man regex)是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串,通常被用来检索或替换那些符合某个模式的文本内容。

正则表达式分为:基本正则表达式和扩展正则表达式。

正则表达式由三种元素组成:

字符类(Character Class):在模式中表示一个字符,但是取值范围是一类字符中的任意一个。

数量限定符(Quantier):例如邮件地址的每一部分可以有一个或多个x字符,IP地址的每一部分可以有1-3个y字符。

位置限定符(Anchor):描述各种字符类以及普通字符之间的位置关系,例如邮件地址分三部分,用普通字符@和.隔 开,IP地址分四部分用.隔开,每一部分都可以用字符类和数量限定符描述。

正则表达式的相关介绍:

字符类:

使用示例:

数量限定符:

使用示例:

位置限定符:

使用示例:

note:使用--color命令使匹配字符高亮。

(四)小结

以上使用的是grep正则表达式的Extended规范,所有加上了-E选项。Basic规范也有这些语法,只是字符?+{}|()应 解释 为普通字符,要表示上述特殊含义则需要加\转义。如果用grep而不是egrep,并且不加-E 参数,则应该遵照Basic 规范来写正则表达式。

时间: 2024-08-25 08:58:01

浅析grep工具相关选项及正则表达式的相关文章

正则表达式-grep工具常见选项的使用

正则表达式:就是规定一些语法表示字符类.数量限定符.和位置限定符关系,再和普通字符共同来表示一个模式,用某种模式来匹配一类字符串,许多程序设计语言都支持正则表达式匹配 一个正则表达式的三个要素和一些特殊字符 先了解一下grep工具: grep:文本过滤工具.它能使用正则表达式搜索文本,并把匹配的行打印出来.正则表达式在grep中用来查找符合模式的字符串,grep找的是包含某个模式的行. egrep相当于grep -E,表示采用Extended正则表达式语法. grep的正则表达式有Basic和E

grep工具的使用与正则表达式

grep:(Global search REgular expression and Print out the line.) grep是Linux的文本内容搜索工具,对于给定的文档,以行为单位,根据匹配条件对文本内容逐行匹配,匹配的条件小到单个字符大到整行,搜索时以指定的模式匹配字符串表达的内容为单位,这里提到的单位有字符串长度的意义,以这个字符串作为一个完整的单元从前至后匹配行中的内容,当在行中匹配到符合条件的内容后默认是将该行的予以显示,而不是匹配到的字符串,搜索时要求给定的搜索条件,即模

Linux:正则表达式及:grep工具

什么是正则表达式: 正则表达式就是处理字符串的方法,他是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易达到查找,删除,替换某种特定字符串的处理程序,其实就像相当与添加位置限定符,数量限定符,字符想定符来进行范围缩减匹配. 2.grep工具: 首先grep就是一个查找工具,然后通过正则表达式完成字符串的搜索. 存在3种限定符: 首先是字符限定符: 数量限定符: 位置限定符: 其他限定符: 是grep正则表达式的Extended规范,Basic规范也有这些语法,只

linux基本命令grep egrep fgrep用法以及正则表达式

1.1.基本定义:  www.2cto.com grep(global search regular RE ) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它只能使用基本的正则表达式来搜索文本,并把匹配的行打印出来. grep是很常见也很常用的命令,它的主要功能是进行字符串数据的比较,然后符合用户需求的字符串打印出来,但是主意,grep在数据中查找一个字符串时,是以"整行"为单位进行数据筛选的. egrep命令等同于grep

shell脚本--grep工具

grep工具 shell命令行之所以便捷和它所支持的工具是离不开的,其中grep工具就是一个搜索神器,它可以搜索整个linux系统所有文件中的所有信息. grep的灵活使用离不开正则表达式 正则表达式是一种查找以及字符串替换操作,它只是一个字符串,没有长度的限制,但是一般却表较短.可以被认为是一种轻量级.简介.使用与特定领域的编程语言. 这里主要使用grep工具 grep工具一般用来做两件事,搜索文件和搜索指定字符串 grep常用命令 -a 不要忽略二进制数据. -b 在显示符合范本样式的那一行

grep, egrep及相应的正则表达式用法详解

grep, egrep及相应的正则表达式用法详解 一.grep/egrep Global search REgular expression and Print out的简写,是一种强大的文本搜索工具,它根据用户指定的文本模式(正则表达元字符以及正常字符组合而成)对目标文件进行逐行搜索,并把匹配的行打印出来.Unix的grep家族包括grep.egrep和fgrep. linux使用GNU版本的grep.它功能更强,可以通过-E.-F命令行选项来使用egrep和fgrep的功能(fgrep不使用

grep与egrep命令及正则表达式

在Linux中,有很多文本处理的方式,今天我们就来介绍其中的一种grep系. grep系相对来说也是功能很强大的文本处理工具,俗称文本三剑客之一(其余两个为sed.awk). grep系可分为grep.egrep.fgrep(默认情况下不开启正则表达式). grep系的功能:利用正则表达式全局搜索,并将匹配的都显示出来 grep的用法格式:  grep [options] PATTERN [FILE...] 其中PATTERN为要匹配的字符 先举个简单例子:[[email protected]

linux文本处理三剑客之grep家族及其相应的正则表达式使用详解

一.Linux文本处理三剑客.grep家族和正则表达式介绍 Linux上文本处理三剑客: grep(egrep, fgrep):文本搜索工具:基于"pattern(过滤条件)"对目标文本进行逐行搜索操作: sed:Stream Editor,流编辑器行编辑工具:文本编辑工具: awk:GNU awk,文本格式化工具:文本报告生成器: grep家族: grep: Global search REgular expression and Print out the line,支持使用基本正

shell下的grep工具

一. grep grep(Globally search a Regular Expression and Print)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,将匹配的行打印出来,但是并不影响原文件的内容:并且通过返回值来通知搜索结果,如果命令的退出码为0则表示搜索成功,返回值为1则表示搜索不成功:如果搜索的文件不存在,则会返回2:因此利用这些返回值就可以进行相应的文本处理工作. 对于grep来说,其工作模式有两种:一种是Basic模式,在该模式下,其命令参数的正则表达式中对于字符