正则表达式与通配符的区别

来源:互联网 发布:仿京东商城html源码 编辑:程序博客网 时间:2024/05/21 19:37
首先要记住的是: 正则表达式通配符不一样,它们表示的含义并不相同!
find:开始之前,我们先来看一下 find 命令的基本结构:find start_directory test options criteria_to_match action_to_perform_on_resultsfind ./ -name a.out在以下命令中,find 将开始在当前目录(用“.”表示)中查找任何扩展名为“java”的文件:find . -name "*.java"   (-name 参数后面跟的是通配符,'.'在通配符中不是元字符,在正则表达式中是) 

shell常见通配符:

字符含义实例*匹配 0 或多个字符a*b  a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。?匹配任意一个字符a?b  a与b之间必须也只能有一个字符, 可以是任意字符, 如aab, abb, acb, a0b。[list] 匹配 list 中的任意单一字符a[xyz]b   a与b之间必须也只能有一个字符, 但只能是 x 或 y 或 z, 如: axb, ayb, azb。[!list] 匹配 除list 中的任意单一字符a[!0-9]b  a与b之间必须也只能有一个字符, 但不能是阿拉伯数字, 如axb, aab, a-b。[c1-c2]匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]a[0-9]b  0与9之间必须也只能有一个字符 如a0b, a1b... a9b。{string1,string2,...}匹配 sring1 或 string2 (或更多)其一字符串a{abc,xyz,123}b    a与b之间只能是abc或xyz或123这三个字符串之一。
{1..3}.txt    这种情况就只可能是1.txt或2.txt或3.txt
a{1,2}b{3,4}   这样会依次匹配输出结果是a1b3 a1b4 a2b3 a2b4

 

需要说明的是:通配符看起来有点象正则表达式语句,但是它与正则表达式不同的,不能相互混淆。

把通配符理解为shell 特殊代号字符就可。而且涉及的只有,*,? [] ,{} 这几种。



0 0
原创粉丝点击