Bash script中的通配符与正则表达式
通配符符号与其意义
- 符号 意义
*
代表任意个(包括0个)字符?
代表一定有一个任意字符[]
代表至少有一个中括号内的字符。[abc]
代表一定有一个字符,是a
/b
/c
中任一个[-]
代表编码顺序内所有字符。[0-9]
代表数字,[a-z]
代表小写字母,[A-Z]
代表大写字母[^]
非。[^abc]
代表一定有一个字符,只要是非a
/b
/c
的其他字符就行
正则表达式
正则表达式(regular expression)
- RE字符 意义
*
重复0个或多个前面的RE字符.
点号,任意字符(一定有一个)^word
待查找字符(word)在行首word$
待查找字符(word)在行尾\
转义字符,将特殊符号的特殊意义去除[list]
从字符集list中任意选取一个。如[abc]
代表a
或b
或c
[-]
代表编码顺序内所有字符。[0-9]
代表数字,[a-z]
代表小写字母,[A-Z]
代表大写字母[^]
非。[^abc]
代表一定有一个字符,只要是非a
/b
/c
的其他字符就行。[^a-z]
代表非小写字母[^A-Z]
代表非大写字母[^0-9]
代表非数字{n,m}
连续n到m个前一个RE字符{n}
连续n个前一个RE字符{n,}
连续n个以上前一个RE字符
扩展正则表达式(extended regular expression)
- 扩展符号 意义
?
匹配0个或一个在其之前的那个普通字符+
匹配一个或多个在其之前的那个普通字符( )
表示一个字符集合或用在expr中|
表示“或”,匹配一组可选的字符