Shell编程-通配符
1、通配符 作用
? 匹配一个任意字符
* 匹配任意多个字符(包括0个)
[] 匹配中括号中的任意一个字符
[-] 匹配中括号中的任意一个字符,-代表范围
[^] 逻辑非,表示不是中括号中的任何一个
通配符通常用于查找相关文件,用于命令中快速查找相关名字的相关文件
2、首先,我们查看下 ? 和 * 的区别
? 匹配任意一个字符,意思是必须要有字符
* 匹配任意多个字符,当然0个也就是没有也是可以匹配的
下面示例演示下:
ls先查看下我们的目录
目录下面有 newfile 和 newfile1
3、分别敲 ls ?newfile 和 ls *newfile
得出结果,?newfile是找不到
*newfile确有newfile一个文件
newfile前面?意思是newfile前面要跟最少一个字符,所有匹配不出来
4、那我们怎么来把newfile 和 newfile1都匹配出来呢,
ls *new* 就可以了
5、我们再多创建两个文件
touch mewfile
touch tewfile
6、这个时候有很多类似的文件匹配,我们就需要用到[]来匹配
他们都有共同点,后面都是ewfile,只是首位的字符不一样
ls [mnt]ewfile
指定前面识别的字符就可以找到对应文件
7、但是,我们又不知道,前面到底是m 还是 n, 还是t ,只知道是字符,那么我们就会用到范围匹配
ls [a-z]ewfile
这样我们一样可以匹配到
8、那么这个时候,我们又遇到特殊需求,我们就想匹配除了n开头的ewfile的所有文件
我们就会用到逻辑非[^]
ls [^n]ewfile
这样我们就能拿到我们想要的结果了
9、好了,通配符就这么多,大家熟练掌握,在不同的情况运用不同的通配符会起到非常棒的效果