文档章节

第7章 sed、gawk介绍与正则表达式-----------(扩展的正则表达式)

henni_719
 henni_719
发布于 2017/03/14 17:27
字数 971
阅读 16
收藏 0

7.6 扩展的正则表达式

         POSIXERE模式包括某些Linux应用程序和工作使用的其他符号。gawk程序能够识别ERE模式,但是sed编辑器。sed编辑器和gawk程序的正则表达式引擎存在差异。gawk程序可以使用大部分扩展正则表达式模式的符号,并且具有sed编辑器没有的其他一些筛选能力。由于这一点,gawk处理数据流的速度通常较慢。

7.6.1 问号

         问号(?)表示其前面的字符可以不出现或出现一次,它不匹配重复出现的字符。

        

         上图实例:如果o不出现在文中,或者仅在文本中出现一次,则模式匹配。

         问号可以与字符类连用:

        

         上述实例:如果该字符类中字符没有出现或者其中一个字符出现,模式匹配通过。然而,如果两个字符同时出现,或者一个字符出现两次,则模式匹配失败。

7.6.2 加号

         加号(+)表示其前面的字符可以出现一次或多次,但必须出现至少一次。如果该字符不存在,则模式不匹配。

         加号也适用与字符类,与星号和问号的作用方式相同。

        

         如果字符类中定义的任一字符出现,该文本就与指定的模式匹配。如果不使用字符类,如果字符a或o字符不存在,模式匹配失败。

7.6.3 适用大括号

         在ERE中可以使用大括号指定对可重复的正则表达式的限制。通常称为间隔(interval)。可以用两种格式表示间隔:

m:该正则表达式正好出现m次

m,n:该正则表达式出现最少m次,最多n次

         这一功能允许调整某一字符或字符类在模式中出现的精确次数。默认情况下,gawk程序不能识别正则表达式间隔。必须指定--re-interval命令行选项,以便gawk程序识别正则表达式间隔

         操作实例如下:

        

         通过指定间隔1,可以将该字符在要匹配模式的字符串中存在的次数限定为1。如果该字符出现多次,则该模式匹配失败。

         需要指定上下限时,大括号可以派上用场。上图所示的例子中:如果o可以出现一次或两次,模式匹配通过;否则模式匹配失败。

         间隔字符也适用与字符类,如果在此文本模式中正好有一个或两个o,则此正则表达式模式匹配,但如果存在更多的任意组合,模式匹配就会失败。

7.6.4 管道符号

         管道符号允许用逻辑OR公式指定正则表达式检查数据流时使用的两个或多个模式。如果任何一个模式与数据流文本匹配,该文本通过。如果没有一个模式匹配,数据流文本失败。     

   

         正则表达式和管道符号之间不能有任何空格,否则将空格添加到正则表达式模式中。管道符号两个的任何正则表达式都可以使用任意正则表达式模式来定义文本。

7.6.5 将表达式分组

         正则表达式模式可以使用圆括号分组。在将正则表达式模式分组时,一个组合将作为一个标准字符处理。可以像特殊字符应用于正常字符一样,将特殊字符应用于组合。

        

         将分组和管道符号结合使用以创建可能的模式匹配组是很常见的组合。

本文转载自:http://blog.csdn.net/henni_719/article/details/54286978

henni_719
粉丝 2
博文 466
码字总数 343938
作品 0
信阳
QA/测试工程师
私信 提问
linux实战(一)----日志的截取-----文本过滤器grep、文本流式编辑器sed、报表生成器awk的运用

linux实战(一)----日志的截取-----文本过滤器grep、文本流式编辑器sed、报表生成器awk的运用 2015年12月25日 16:28:50 张小凡vip 阅读数 5404更多 所属专栏: linux基础与shell编程 版权声明...

linjin200
06/13
28
0
第十八章 文本处理流编辑器:sed命令

第十八章 文本处理流编辑器:sed命令 名词解释 sed 是一种流编辑器,它是文本处理常用到的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称...

506554897
2018/07/18
0
0
linux下grep、awk和sed工具用法概览

linux下grep、awk和sed工具用法概览 在linux下,grep、awk和sed是非常强大的文本处理工具,其中grep命令主要用作文本搜索,而awk和sed命令侧重于文本的编辑等操作,另外awk本身还可以是编程语...

小陶小陶
2018/09/11
162
0
linux下的文本处理命令sed&awk&grep

SedSed sed 是个精简的、非交互式的编辑器。他能执行和编辑vi和emacs相同的编辑任务。sed编辑器不提供交互使用方式:只能在命令行输入编辑命令、指定文件 名,然后在屏幕上察看输出。sed编辑...

阿秀a
2011/09/15
0
0
Linux下find、awk、sed、grep命令的例子

find:搜索工具 # 列出当前目录及子目录下所有文件和文件夹find . 在/home目录下查找以.txt结尾的文件名,-i表示忽略大小写 find /home -iname "*.txt" find命令的详细介绍 awk:数据快速处理...

吴伟祥
03/26
26
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
6
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
7
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
5
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
6
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部