linux与unix shell编程指南007new

linux与unix shell编程指南007new

ID:34652078

大小:200.62 KB

页数:7页

时间:2019-03-08

linux与unix shell编程指南007new_第1页
linux与unix shell编程指南007new_第2页
linux与unix shell编程指南007new_第3页
linux与unix shell编程指南007new_第4页
linux与unix shell编程指南007new_第5页
资源描述:

《linux与unix shell编程指南007new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、下载第二部分文本过滤第7章正则表达式介绍随着对UNIX和LINUX熟悉程度的不断加深,需要经常接触到正则表达式这个领域。使用shell时,从一个文件中抽取多于一个字符串将会很麻烦。例如,在一个文本中抽取一个词,它的头两个字符是大写的,后面紧跟四个数字。如果不使用某种正则表达式,在shell中将不能实现这个操作。本章内容包括:¥匹配行首与行尾。¥匹配数据集。¥只匹配字母和数字。¥匹配一定范围内的字符串集。当从一个文件或命令输出中抽取或过滤文本时,可以使用正则表达式(RE),正则表达式是一些特殊或不很特殊的字符串模式的集合。为了抽取或获得信息,我们给出抽取操作应遵守的一些规则。这些规则

2、由一些特殊字符或进行模式匹配操作时使用的元字符组成。也可以使用规则字符作为模式中的一部分进行搜寻。例如,A将查询A,x将查找字母x。系统自带的所有大的文本过滤工具在某种模式下都支持正则表达式的使用,并且还包括一些扩展的元字符集。这里只涉及其中之一,即以字符出现情况进行匹配的表达式,原因是一些系统将这类模式划分为一组形成基本元字符的集合。这是一个好想法,本书也采用这种方式。本章设计的基本元字符使用在grep和sed命令中,同时结合{\}(以字符出现情况进行匹配的元字符)使用在awk语言中。表7-1基本元字符集及其含义^只只匹配行首$只只匹配行尾*只一个单字符后紧跟*,匹配0个或多个

3、此单字符[]只匹配[]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。可以使其失去应有意义.只匹配任意单字符pattern{n}只用来匹配前面pattern出现次数。n为次数pattern{n,}m只含义同上,但次数最少为npattern{n,m}只含义同上,但pattern出现次数在n与m之间现在详细讲解其中特殊含义。50第二部分文本过滤下载7.1使用句点匹配单字符句点“.”可以匹配任意单字符。例如,如果要匹配一个字符串,以be

4、g开头,中间夹一个任意字符,那么可以表示为beg.n,“.”可以匹配字符串头,也可以是中间任意字符。在ls-l命令中,可以匹配一定权限:...x..x..x此格式匹配用户本身,用户组及其他组成员的执行权限。假定正在过滤一个文本文件,对于一个有10个字符的脚本集,要求前4个字符之后为XC,匹配操作如下:....XC....以上例子解释为前4个字符任意,5,6字符为XC,后4个字符也任意,按下例运行:注意,“.”允许匹配ASCII集中任意字符,或为字母,或为数字。7.2在行首以^匹配字符串或字符序列^只允许在一行的开始匹配字符或单词。例如,使用ls-l命令,并匹配目录。之所以可以这样做

5、是因为ls-l命令结果每行第一个字符是d,即代表一个目录。回到脚本(1),使用^001,结果将匹配每行开始为001的字符串或单词:可以将各种模式结合使用,例如:^...4XC....结果为:第7章正则表达式介绍51下载以上模式表示,在每行开始,匹配任意3个字符,后跟4XC,最后为任意4个字符。^在正则表达式中使用频繁,因为大量的抽取操作通常在行首。在行首第4个字符为1,匹配操作表示为:^...1结果为:行首前4个字符为comp,匹配操作表示为:^comp假定重新定义匹配模式,行首前4个字符为comp,后面紧跟两个任意字符,并以ing结尾,一种方法为:^comp..ing以上例子太明

6、显了,不是很有用,但仍讲述了混合使用正则模式的基本概念。7.3在行尾以$匹配字符串或字符可以说$与^正相反,它在行尾匹配字符串或字符,$符号放在匹配单词后。假定要匹配以单词trouble结尾的所有行,操作为:trouble$类似的,使用1d$返回每行以1d结尾的所有字符串。如果要匹配所有空行,执行以下操作:^$具体分析为匹配行首,又匹配行尾,中间没有任何模式,因此为空行。如果只返回包含一个字符的行,操作如下:^.$不像空白行,在行首与行尾之间有一个模式,代表任意单字符。如果在行尾匹配单词jet01,操作如下:jet01$7.4使用*匹配字符串中的单字符或其重复序列使用此特殊字符匹配

7、任意字符或字符串的重复多次表达式。例如:compu*t将匹配字符u一次或多次:另一个例子:10133*匹配52第二部分文本过滤下载7.5使用屏蔽一个特殊字符的含义有时需要查找一些字符或字符串,而它们包含了系统指定为特殊字符的一个字符。什么是特殊字符?一般意义上讲,下列字符可以认为是特殊字符:假定要匹配包含字符“.”的各行而“,”代表匹配任意单字符的特殊字符,因此需要屏蔽其含义。操作如下:.上述模式不认为反斜杠后面的字符是特殊字符,而是一个普通字符,即句点。假定要匹

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。