linux之通配符和正则表达式的不同 - pod4g/tool GitHub Wiki

一、通配符和正则表达式的区别

  1. 通配符是shell内置支持的,而正则表达式是程序支持的,例如grep、sed、awk
  2. 通配符规则简单,元字符只有* ? [],正则表达式规则复杂

二、通配符

通配符常用在find/locate命令中,通配符是完全匹配,相当于正则表达式前后加^$,规则如下:

  1. * 代表任意个任意字符
  2. ? 代表任意一个字符
  3. [] 字符类。和正则表达式的中的含义相同。也支持范围和取反。比如[a-z]或[!a-z]。
  4. 字符类取反要注意find ./ -iname *.T[\!a-z]T 需要在取反符号前面加上转义

通配符只有上述几个规则,在实际运用中我们可以灵活组合使用。

https://askubuntu.com/questions/714503/regular-expressions-vs-filename-globbing/714520#714520