pptlinux shell编程从初学到精通pptch03_第1页
pptlinux shell编程从初学到精通pptch03_第2页
pptlinux shell编程从初学到精通pptch03_第3页
pptlinux shell编程从初学到精通pptch03_第4页
pptlinux shell编程从初学到精通pptch03_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、正则表达式第3章南京财经大学 江苏省电子商务重点实验室伍之昂 王有权提纲 正则表达式 基础 扩展 通配 grep命令正则表达式基础(2) 元字符(metacharacters)是用来阐释字符表达式意义的字符,简言之,元字符就是描述字符的字符,它用于对字符表达式的内容、转换及各种操作信息进行描述。 正则表达式是由一串字符和元字符构成的字符串,简称RE(Regular Expression)。 正则表达式的主要功能是文本查询和字符串操作,正则表达式可以匹配文本的一个字符或字符集合。Linux是一套可免费使用和自由传播的类Unix操作系统 a、b、1、2等字符属于普通字符,普通字符可以按照字面意思理

2、解,如:a只能理解为英文的小写字母a,没有其他隐藏含义。 而*、等元字符,Shell赋予了它们超越字面意思的意义,如:*符号的字面意义只是一个符号,而实际上却表示了重复前面的字符0次或多次的隐藏含义符号意义*0个或多个在*字符之前那个普通字符.匹配任意字符匹配行首,或后面字符的非$匹配行尾匹配字符集合转义符,一个元字符的特殊意义精确匹配符号n匹配前面字符出现n次n,匹配前面字符至少出现n次n,m匹配前面字符出现n次与m次之间正则表达式基础(4) *符号用于匹配前面一个普通字符的0次或多次重复 hel*o: *符号前面的普通字符是l,*字符就表示匹配l字符0次或多次,如字符串helo、hello

3、、hellllllo都可以由hel*o来表示 .符号用于匹配任意一个字符 73.表示前面三个字符为任意字符,第4和第5个字符是7和3,最后一个字符为任意字符,如xcb738、4J973U都能匹配上述字符串 符号用于匹配行首,表示行首的字符是字符后面的那个字符 cloud表示匹配以cloud开头的行 $符号匹配行尾,$符号放在匹配字符之后a、b、1、2等字符属于普通字符,普通字符可以按照字面意思理解,如:a 只能理解为英文的小写字母a,没有其他隐藏含义。 micky$表示匹配以micky结尾的所有行 $ 表示空白行 匹配字符集合,该符号支持穷举方法列出字符集合的所有元素 0123456789、0

4、-9 A-Za-z A-Za-z* 匹配所有英文单词 符号是转义符,用于一个元字符的特殊意义 .$ 符号是精确匹配符号,该符号利用符号符号 精确匹配单词the,them, they等不匹配 系列符号表示前一个字符的重复 n:匹配前面字符出现n次 ,如JO3B 匹配JOOOB n,:匹配前面字符至少出现n次,如JO3,B匹配JOOOB、JOOOOB、JOOOOOB等字符串 n,m:匹配前面字符出现n次与m次之间,如JO3,6B匹配JOOOB、JOOOOOOB等字符串 a-z 5: 匹配5个小写英文字母,比如hello、house等正则表达式扩展 awk和Perl等Linux工具还支持正则表达式扩

5、展出来的一 些元字符,这些元字符如下表所示符号意义?匹配0个或1个在其之前的那个普通字符+匹配1个或多个在其之前的那个普通字符()表示一个字符集合或用在expr中|表示“或”意义,匹配一组可选的字符通配 通配(globbing)是把一个包含通配符的非具体文件名扩展到存储在计算机、服务器或者网络上的一批具体文件名的过程 最常用的通配符包括正则表达式元字符:?、*、等,通配符与元字符意义不完全相同: *符号不再表示其前面字符的重复,而是表示任意位的任意字符 ?字符表示一位的任意字符 符号在通配中不代表行首,而是代表取反意义 举三个例子:rootzawu globus# ls -l *.awkroo

6、tzawu globus# ls -l 0?.pem rootzawu globus# ls -l a-h*.awk*grep命令(2) grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,grep也是Linux 中最广泛使用的命令之一 grep 选项模式文件 选项如下页表所示 模式可以是字符串,也可以是变量,还可以是正则表达式。需要说明的是,无论模式是何种形式,只要模式中包含空 格,就需要使用双引号将模式括起来,举例:rootzawu globus# grep certificate 00.pem rootzawu globus# grep user cert

7、ificate 00.pem rootzawu globus# grep user certificate 00.pem 文件可以有多个,亦可以用通配来表示选项意义-c只输出匹配行的数量-i搜索时忽略大小写-h查询多文件时不显示文件名-l只列出符合匹配的文件名,而不列出具体匹配行-n列出所有匹配行,并显示行号-s不显示不存在或无匹配文本的错误信息-v显示不包含匹配文本的所有行-w匹配整词-r递归搜索,不仅搜索当前工作目录,而且搜索子目录-E支持扩展的正则表达式-F不支持正则表达式,按照字符串的字面意思进行匹配grep命令(3) 举几个例子说明grep选项的用法 例3-27例3-28 例3-34

8、例3-35 举几个例子说明grep与正则表达式结合的用法 例3-36 例3-37 例3-41POSIX字符类 为了保持不同国家的字符编码的一致性,POSIX(Portable Operating System Interface)增加了特殊的字符类,以:classname的格式给出,grep命令支持POSIX字符类,举例: 例3-43例3-44类名意义:upper:表示大写字母A-Z:lower:表示大写字母a-z:digit:表示阿拉伯数字0-9:alnum:表示大小写字母和阿拉伯数字0-9a-zA-Z :space:表示空格或Tab键:alpha:表示大小写字母a-zA-Z:cntrl:表示Ctrl键:graph:或:print:表示ASCII码33-126之间的字符:xdigit:表示16进制数字0-9A-Fa-fgrep命令族简介 Linux系统支持三种形式的grep命令,通常将这三种形 式的grep命令称为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论