Shell编程-通配符

2025-10-07 09:04:46

1、通配符    作用

?             匹配一个任意字符

*             匹配任意多个字符(包括0个)

[]            匹配中括号中的任意一个字符

[-]           匹配中括号中的任意一个字符,-代表范围

[^]          逻辑非,表示不是中括号中的任何一个

通配符通常用于查找相关文件,用于命令中快速查找相关名字的相关文件

2、首先,我们查看下 ? 和 * 的区别

?  匹配任意一个字符,意思是必须要有字符

*  匹配任意多个字符,当然0个也就是没有也是可以匹配的

下面示例演示下:

ls先查看下我们的目录

目录下面有 newfile 和 newfile1

Shell编程-通配符

3、分别敲 ls ?newfile 和 ls *newfile

得出结果,?newfile是找不到

*newfile确有newfile一个文件

newfile前面?意思是newfile前面要跟最少一个字符,所有匹配不出来

Shell编程-通配符

4、那我们怎么来把newfile 和 newfile1都匹配出来呢,

ls *new* 就可以了

Shell编程-通配符

5、我们再多创建两个文件

touch mewfile

touch tewfile

Shell编程-通配符

6、这个时候有很多类似的文件匹配,我们就需要用到[]来匹配

他们都有共同点,后面都是ewfile,只是首位的字符不一样

ls [mnt]ewfile

指定前面识别的字符就可以找到对应文件

Shell编程-通配符

7、但是,我们又不知道,前面到底是m 还是 n, 还是t ,只知道是字符,那么我们就会用到范围匹配

ls [a-z]ewfile

这样我们一样可以匹配到

Shell编程-通配符

8、那么这个时候,我们又遇到特殊需求,我们就想匹配除了n开头的ewfile的所有文件

我们就会用到逻辑非[^]

ls [^n]ewfile

这样我们就能拿到我们想要的结果了

Shell编程-通配符

9、好了,通配符就这么多,大家熟练掌握,在不同的情况运用不同的通配符会起到非常棒的效果

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢