本文作者: 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) 进行许可。