0%

通配符 - 命令行的倚天剑、屠龙刀

通配符 - 命令行的倚天剑、屠龙刀

命令行能干很多GUI图形界面不能做的事情,不知道你的Linux倚天剑、屠龙刀有没有出鞘呢。

很多熟悉Linux命令行的人,对命令行的威力应该叹为观止了。

这其中,我认为通配符,或者广一点来说,正则表达式,真的可以成为天下武林至尊,宝刀屠龙了。

说个最简单的例子

我想拷贝某个文件夹里面的在三个小时内曾经修改过的包含hero的文件。

请大家踊跃发言,如何解决。

下面就说下几个比较常用的通配符。

通配符 匹配项
* 匹配任意多个字符
? 匹配任一单个字符
[characters] 匹配任意一个属于字符集合中的字符
![characters] 匹配任意一个不属于字符集合中的额字符

现在我们执行ls命令,可以看到有下面几个文件:

1
2
ls
ab abb ac ad ae af

实例一 *

匹配任意多个字符

1
2
3
4
5
ls a*
ab abb ac ad ae af
ls ab*
ab abb

实例二 ?

匹配任一单个字符

1
2
3
4
5
ls a?
ab ac ad ae af
ls a??
abb

实例三 [characters]

匹配任意一个属于字符集合中的字符

1
2
➜   ls a[bcd]
ab ac ad

实例四 ![characters]

匹配任意一个不属于字符集合中的额字符

1
2
➜   ls a[!(bcd)]
ae af

通配符 - 命令行的倚天剑、屠龙刀

继续昨天的倚天剑的通配符操作。

为什么分两次:

  • 俺觉得昨天的知道的肯定知道,无外乎复习下
  • 不知道的其实也够一天几分钟的量了

为什么说通配符

  • 后面的很多操作都会用到通配符
  • 通配符不掌握不要说你会用Linux
  • 考虑花几十个tips来说下正则表达式

昨天的都比较简单,今天来点有难度的。

其实我觉得屠龙刀比倚天剑厉害,因为我喜欢灭绝师太,^_^。

首先看下目前文件夹里面都有什么,下面所有的操作都基于这个文件列表:

1
2
➜  ls
1a 1b a12 a123 a13 a14 ab AB abb ABC ac ad ae af b12 b123 b13 b14

实例 [:alnum:] - 匹配任意一个字母或数字

1
2
➜  ls [[:alnum:]]*
1a 1b a12 a123 a13 a14 ab AB abb ABC ac ad ae af b12 b123 b13 b14

实例 [:alpha:] - 匹配任意一个字母

1
2
➜  ls [[:alpha:]]*
a12 a123 a13 a14 ab AB abb ABC ac ad ae af b12 b123 b13 b14

实例 [:digit:] - 匹配任意一个数字

1
2
➜  ls [[:digit:]]*
1a 1b

实例 [:lower:] - 匹配任意一个小写字母

1
2
➜  ls [[:lower:]]*
a12 a123 a13 a14 ab abb ac ad ae af b12 b123 b13 b14

实例 [:upper:] - 匹配任意一个大写字母

1
2
➜  ls [[:upper:]]*
AB ABC
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道