|
@@ -13,12 +13,11 @@
|
|
|
% str2=bc
|
|
|
|
|
|
# 星号要在引号外边
|
|
|
-% [[ "$str1" == *"$str2"* ]] && echo good
|
|
|
+% [[ $str1 == *"$str2"* ]] && echo good
|
|
|
good
|
|
|
|
|
|
# 注意带通配符的字符串必须放在右边
|
|
|
-% [[ *"$str2"* == "$str1" ]] && echo good
|
|
|
-
|
|
|
+% [[ *"$str2"* == $str1 ]] && echo good
|
|
|
```
|
|
|
|
|
|
星号是最常用的通配符,用于匹配任意数量(包括 0 个)的任意字符。
|
|
@@ -74,36 +73,36 @@ good
|
|
|
|
|
|
以上是通配符的基本用法,总结一下。
|
|
|
|
|
|
-通配符 | 含义 |
|
|
|
---------------- | --------------------------------------------- |
|
|
|
-\* | 任意数量的任意字符 |
|
|
|
-? | 任意一个字符 |
|
|
|
-[abcd] | abcd 中的任意一个字符 |
|
|
|
-[^abcd] | 除 abcd 外的任意一个字符 |
|
|
|
-[a-c] | a 和 c 之间的一个字符 |
|
|
|
-[a-cB-Dxyz] | a 和 c 之间、B 和 D 之间以及 xyz 中的一个字符 |
|
|
|
-<1-100> | 1 和 100 之间的整数 |
|
|
|
-<-50> | 0 和 50 之间的整数 |
|
|
|
-<100-> | 大于 100 的整数 |
|
|
|
-<-> | 任意正整数和 0 |
|
|
|
-([a-c]\|<1-100>) | a 和 c 之间的一个字符或者 1 和 100 之间的整数 |
|
|
|
+| 通配符 | 含义 | |
|
|
|
+| ---------------- | ------------------------------ | ---- |
|
|
|
+| \* | 任意数量的任意字符 | |
|
|
|
+| ? | 任意一个字符 | |
|
|
|
+| [abcd] | abcd 中的任意一个字符 | |
|
|
|
+| [^abcd] | 除 abcd 外的任意一个字符 | |
|
|
|
+| [a-c] | a 和 c 之间的一个字符 | |
|
|
|
+| [a-cB-Dxyz] | a 和 c 之间、B 和 D 之间以及 xyz 中的一个字符 | |
|
|
|
+| <1-100> | 1 和 100 之间的整数 | |
|
|
|
+| <-50> | 0 和 50 之间的整数 | |
|
|
|
+| <100-> | 大于 100 的整数 | |
|
|
|
+| <-> | 任意正整数和 0 | |
|
|
|
+| ([a-c]\|<1-100>) | a 和 c 之间的一个字符或者 1 和 100 之间的整数 | |
|
|
|
|
|
|
### 加强版通配符
|
|
|
|
|
|
Zsh 还支持加强版通配符,功能更多一些。如果使用加强版的通配符,需要先在代码里加上 `setopt EXTENDED_GLOB`。
|
|
|
|
|
|
-通配符 | 含义 | 匹配的样例
|
|
|
---- | --- | ---
|
|
|
-^abc | 除了 abc 外的任意字符串 | aaa
|
|
|
-abc^abc | 以 abc 开头,但后边不是 abc 的字符串 | abcabd
|
|
|
-a*c~abc | 符合 a*c 但不是 abc 的字符串 | adc
|
|
|
-a# | 任意数量(包括 0)个 a | aaa
|
|
|
-b## | 一个或者多个 b | b
|
|
|
-(ab)## | 一个或者多个 ab | abab
|
|
|
-(#i)abc | 忽略大小写的 abc | AbC
|
|
|
-(#i)ab(#I)c | 忽略大小写的 ab 接着 c | ABc
|
|
|
-(#l)aBc | a 和 c 忽略大小写,但 B 必须大写 的 aBc | aBC
|
|
|
-(#a1)abc | 最多错(多或缺也算)一个字符的 abc | a2c 或 ab 或 abcd
|
|
|
+| 通配符 | 含义 | 匹配的样例 |
|
|
|
+| ----------- | -------------------------- | --------------- |
|
|
|
+| ^abc | 除了 abc 外的任意字符串 | aaa |
|
|
|
+| abc^abc | 以 abc 开头,但后边不是 abc 的字符串 | abcabd |
|
|
|
+| a*c~abc | 符合 a*c 但不是 abc 的字符串 | adc |
|
|
|
+| a# | 任意数量(包括 0)个 a | aaa |
|
|
|
+| b## | 一个或者多个 b | b |
|
|
|
+| (ab)## | 一个或者多个 ab | abab |
|
|
|
+| (#i)abc | 忽略大小写的 abc | AbC |
|
|
|
+| (#i)ab(#I)c | 忽略大小写的 ab 接着 c | ABc |
|
|
|
+| (#l)aBc | a 和 c 忽略大小写,但 B 必须大写 的 aBc | aBC |
|
|
|
+| (#a1)abc | 最多错(多或缺也算)一个字符的 abc | a2c 或 ab 或 abcd |
|
|
|
|
|
|
此外还有一些更高级的用法,暂时先略过。
|
|
|
|