本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/02/05/bash%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%BC%8F%E5%8C%B9%E9%85%8D/
摘要
本文主要讲述了:
*
?
[]
正文
除了通配符之外,模式中出现的任何字符都匹配其本身
要在模式中按字面意思匹配通配符,请使用\
进行转义或使用引号包裹。
*
*
匹配任意长度的字符串,包括空字符。
?
?
匹配任意一个字符。
[]
[]
匹配集合内任意一个字符。
示例:
[012]
可以匹配 0-2 之间的任意一个字符[abc]
可以匹配 a-c 之间的任意一个字符[ABC]
可以匹配 A-C 之间的任意一个字符
用-
表示范围。范围是闭区间,边界字符被包括在内。示例:[0-9]
可以匹配 0-9 之间的任意一个字符。
注意:范围是根据当前区域而定的。
在 C 区域(POSIX 区域)中,[a-dx-z] === [abcdxyz]
。但有些区域按照字典顺序(比如:en_US.utf8
),此时[a-dx-z] === [aBbCcDdXxYyZz]
。
1 |
|
除此之外,还可以用字符类来表示范围:
[:alnum:]
字母和数字[:alpha:]
字母[:ascii:]
[:blank:]
[:cntrl:]
控制字符[:digit:]
数字[:graph:]
[:lower:]
小写字母[:print:]
[:punct:]
标点字符[:space:]
空白字符[:upper:]
大写字母[:word:]
字母、数字和下划线[:xdigit:]
十六进制数字
在使用类的时候要把类放在[]
里面,例如:[[:alnum:]]
。
不匹配
如果[]
内的首字符是!
或^
,则表示不匹配集合内任意一个字符。
示例:
[!0-9]
不匹配 0-9 之间的任意一个字符[![:alpha:]]
不匹配字母
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/02/05/bash%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%BC%8F%E5%8C%B9%E9%85%8D/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/02/05/bash%E4%B8%AD%E7%9A%84%E6%A8%A1%E5%BC%8F%E5%8C%B9%E9%85%8D/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。