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]
上一篇:
正则表达式(?p
下一篇: shell脚本之--正则表达式