标签:字符 匹配 CentOS glob 命令行 单个 集合 任意
在 CentOS 的命令行中使用命令的时候,如果不使用正则相关的命令,我们是否可以使用类似正则的匹配呢,比如在使用 ls、find、rm 等命令时?
glob 匹配正是您所需要的。此匹配规则在 CentOS 手册页的 glob 条目的第七类中可以找到。 命令 man 7 glob
可查询此信息。
glob 匹配类型
glob 具有四种匹配类型,分别为通配符(wildcard)、字符类(Character classes)、范围(Ranges)和反(Complementation)匹配。
通配符匹配(wildcard)
单个字符串就是一个通配符匹配,但在此字符串中如有 ?、* 或 [ 符号时,将会启用匹配扩展。
* 匹配 0 至 n 个任意字符。
? 匹配任意单个字符。
字符类匹配(Character classes)
[]
匹配括号内用逗号分隔的字符集合中的任意单个字符。
[][!]
将匹配 ]、[、! 三个字符中的任意一个字符。
范围匹配(Ranges)
[start_char-end_char]
方括号加连字符方式,可以匹配多个连续字母字符或递增数字字符集合中的任意单个字符。
[A-Fa-f0-9]
等同 [ABCDEFabcdef0123456789]
反匹配(Complementation)
[!character_set]
方括号中使用感叹号,可以匹配所有字符集合中的,但不包括在感叹号后字符集合的任意单个字符。
[!]a-]
将匹配除了 ]、a、、- 字符的所有字符集合中的任意单个字符。
注意事项
在 shell 命令行中,转译字符 \
可以取消 ?
、*
和 [
的特殊功能,但在方括号中的字符表示愿意,如 [[?*\]
匹配其中四个字符。
在对路径名匹配中, /
字符不能被 ?
、*
或像 "[.-0]" 范围匹配所匹配。在范围匹配中包含 /
,是语法错误。
文件名以 .
为起始时,无法被 *
匹配,必须显式的匹配点号。
rm *
命令不会删除所有文件。
tar c *
命令不会打包所有文件,tar c .
就好多了。
标签:字符,匹配,CentOS,glob,命令行,单个,集合,任意 来源: https://www.cnblogs.com/haojiangzhu/p/14172387.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。