欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

shell脚本---通配符和正则表达式

程序员文章站 2022-07-10 09:21:32
...

正则表达式:

*	:	0个或多个在*字符之前的那个普通字符
.	:	匹配任意字符
^	:	匹配行首,或者取反,当放在[]里面时表示取反
$	:	匹配行尾	micky$表示匹配以 micky结尾的所有行
[]	:	匹配字符集合	[a-z][A-Z][0-9]分别表示匹配小写字母,大写字母,数字
\	:	转义字符
\<\>	:	精确匹配符号	记得加双引号
\{n\}	:	匹配前面的字符出现n次
\{n,\}:	匹配前面的字符至少出现n次
\{n,m\}:	匹配前面的字符出现n-m次
扩展正则表达式可用
?	:	匹配0个或1个在其之前的那个普通字符
+	:	匹配1个或多个在其之前的那个普通字符
()	:	表示一个字符集合或用在expr中	例如:ceph-(a|b|c)匹配ceph-a\ceph-b\ceph-c
|	:	匹配一组可选字符

通配符
字符 含义 实例

* 	 			匹配 0 或多个字符  					a*b  a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。
?  				匹配任意一个字符 						a?b  a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。  
[list]   			匹配 list 中的任意单一字符  				a[xyz]b   a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。  
[!list]  			匹配 除list 中的任意单一字符  			a[!0-9]b  a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。  
[c1-c2]  			匹配 c1-c2 中的任意单一字符 				如:[0-9] [a-z] a[0-9]b  0与9之间必须也只能有一个字符 如a0b, a1b... a9b。  
{string1,string2,...}  	匹配 sring1 或 string2 (或更多)其一字符串 	 a{abc,xyz,123}b    a与b之间只能是abc或xyz或123这三个字符串之一。  

字符簇 描述

[[:alpha:]]	任何字母
[[:digit:]]	任何数字
[[:alnum:]]	任何字母和数字
[[:space:]]	任何空白字符
[[:upper:]]	任何大写字母
[[:lower:]]	任何小写字母
[[:punct:]]	任何标点符号
[[:xdigit:]]	任何16进制的数字,相当于[0-9a-fA-F]