目录
学习python风格, 优雅规范书写shell代码
glob - globbing pathnames
通配符是Shell在写Pathname Expansion使用的, 比如find, ls, cp, mv, cat, yum等命令
| Glob | Comment | Examples |
|---|---|---|
| * | 匹配任意(>=0)个字符 | e.g. a*b, 表示a与b之间可以有任意个字符, 可以匹配到ab, aab, a98db等 |
| ? | 匹配1个任意字符 | e.g. a?b, 表示a与b之间只能有一个字符, 可以匹配到axb, ayb, azb等 |
| [list] | 匹配list中的任意一个字符 | e.g.1 a[123]b, 可以匹配到a1b, a2b, a3b e.g.2 a[A-C]b, 可以匹配到aAb, aBb, aCb |
| [^list] | 匹配不在list中一个任意字符 | e.g. a[^1-3]b, 可以匹配到acb, a4b, axb |
| {str1,str2...} | 匹配大括号内所有str | e.g. a{abc,xyz,123}b, 列出aabcb, axyzb, a123b |

规则表达式就是用事先定义好的一些特定字符组合模板对文本内容过滤的语言
Linux中支持RE的命令有vim,grep, awk, sed等
默认贪婪匹配
Linux命令中常用的RE
| RE | Comment |
|---|---|
| . | 匹配任意一个字符 |
| [list] | 匹配list中的任意一个字符 |
| [^list] | 匹配不在list中一个任意字符 |
| [[:space:]] | 匹配空格字符 |
| 次数匹配 | 用于指定匹配其前面的字符的次数 |
| * | 表示任意次, 等价于{0,} |
| ? | 表示0次或1次, 等价于{0,1} |
| + | 表示>=1次, 等价于{1,} |
| {m,n} | 表示>=m次, <=n次 |
| {m,} | 表示>=m次 |
| 位置锚定 | 用于指定字符出现的位置 |
| ^char | 锚定以char行首的内容 |
| char$ | 锚定以char行尾的内容 |
曾经一度把glob和re两个概念混淆!
?? Oh Yeah!
原文:https://www.cnblogs.com/zakzhu/p/11615406.html