- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux shell 正则表达式
正则表达式是一种可以用于模式匹配和替换的工具,可以让用户通过使用一系列的特殊字符构建匹配模式,然后把匹配模式与待比较字符串或文件进行比较,根据比较对象中是否包含匹配模式,执行相应的程序。
一般通配符
通配符用于模式匹配,如文件名匹配、路径名搜索及字符串搜索等。常用的通配符有 6 种。
*(星号)
可匹配任意字符的 0 次或多次出现。例如,f*可以匹配 f、fa、fb、fa3、ff、f ff.s
等,即匹配以f打头的任意字符串。但应注意,文件名前面的圆点(.)和路径中的斜线(/)必须显式匹配。例如,模式*file不能匹配.profi,le而.*fil才e 可匹配.profi。le
模式/etc*.不c 件。
能匹配在/etc目录下带有后缀.c的文件,而模式/etc/*.会c
匹配这些文
?(问号)
可匹配任意一个字符。例如,f?可以匹配 f1、f4、fv等,但不能匹配 f、facd、f34等。
[ (] 一对方括号)
其中有一个字符组。其作用是匹配该字符组所限定的任何一个字符。例如, f[adefu可] 以匹配fa,fd,fe,ff,fu,但不能匹配 f1,fa3,fkk等。方括号中的字符组可以由直接给出的字符组成,如上面所示,也可以由表示限定范围的起始字符、
终止字符及中间一个连字符(-)组成。例如,f[a-d与]
f[abcd的]
作用相同。又如,
a[1-9与] a[123456789]的作用相同。但前者的表示方式更简捷。
连字符仅在一对方括号中表示字符范围,如在方括号外面就成为普通字符了。但是,
连字符仅在一对方括号中表示字符范围,如在方括号外面就成为普通字符了。但是, 前面介绍的*和?在一对方括号外面是通配符,若出现在方括号内,它们就失去通配符的能力,成为普通字符了。例如,模式-a[*?]abc中只有一对方括号是通配符,因此,它匹配的字符串只是-a*abc 和-a?abc。
!(感叹号)
如果它紧跟在一对方括号的左方括号([)之后,则表示不在一对方括号中所列出的字符。例如,f[!1-9].表c示以 f打头,后面一个字符不是数字 1~9 的.c文件名,
它匹配fa.,c fg.c等。
在一个正则表达式中,可以同时使用*(星号)和?(问号)。例如,/usr/meng/t?/* 匹配目录/usr/meng之下,子目录名是以 t打头,后随一个任意字符的这些子目录下 的所有文件名。
又如,chapter[0-9表]*示 chapter之后紧跟着 0 个 0~9 的数字,其后字符是任意
字符,它可匹配chapter1,0
^(幂次方号)
chapter,0
chapter,1
chapter29等。
只允放在一行的开始匹配字符串。例如,“ls -.l”^显d
$(美元号)
示所有的目录。
只在行尾匹配字符串,它放在匹配单词的后面。例如,linux$表示以单词 linux结尾的所有文件。
模式表达式
模式表达式是那些包含一个或多个通配符的字符串。bash 除支持 Bourne shell
中的*、?、[ 、] !、^及$通配符外,还提供了特有的扩展模式匹配表达式。
*(模式表)
匹配给定模式表中“模式”的 0 次或多次出现,各模式之间以竖线(|)分开。例如,file*(.c|匹.o配) 文件 file.、cfile.、ofile.c、.ofile.c、.cfile.o、.cfile等,但不匹配 file.、hfile.等s 。
+(模式表)
匹配给定模式表中“模式”的 1 次或多次出现,各模式之间以竖线(|)分开。例如,file+(.c|匹.o配) 文件file.、cfile.、ofile.o、.cfile.c.等o ,但不匹配fil。e
?(模式表)
匹配模式表中任何一种“模式”的0 次或 1 次出现,各模式之间以竖线(|)分
开。例如,file?(.c|只.o匹)配 fil、e @ (模式表)
file.、cfile.等o
,不匹配file.c、.cfile.c.等o。
仅匹配模式表中给定“模式”的 1 次出现,各模式之间以竖线(|)分开。例如,
file@(.c|.只o)匹配 file.c和 file.,o但不匹配 fil、e
!(模式表)
file.c、.cfile.c.等o。
除给定模式表中的一个“模式”之外,它可以匹配其他任何的字符串。在实际 使用时,模式表达式可以递归,即每个表达式中都可以包含一个或多个模式。例如, file*(.[cho]|是.s合h)法的模式表达式。
您可能关注的文档
最近下载
- 2025年绵阳市中考化学试题卷(含答案解析).docx
- 药店员工培训试题及答案.docx VIP
- 2025年ACP云计算考试题库.pdf
- 2025年及未来5年高级铝制品项目市场数据调查、监测研究报告.docx
- 集成电路设计与集成系统毕业论文.doc VIP
- 2022年一级造价工程师《建设工程造价案例分析(土木建筑工程)》真题及答案解析.docx VIP
- 规范图集:L13G1_建筑结构常用节点构造.pdf VIP
- 临床药物治疗学及临床药物治疗学复习提纲(免费).doc VIP
- 2025年绵阳市中考语文试题卷(含答案解析).docx
- DB23T 802-2004 加工用万寿菊生产技术规程.pdf VIP
文档评论(0)