shell中的通配符与正则表达式是不同的两种功能。
正则表达式一般不会在bash直接应用,需要使用sed、grep、awk来解释正则表达式。
通配符则可以通过bash直接解释,一般用作名称展开。
bash中可以使用的通配符符号包括:*、?、{}、[]、^
这些符号有些可以单独使用,有些需要组合使用。下面通过例子来说明。
例1:列出全部“.sh”结尾的文件,ls *.sh
例2: :列出全部“.sh”结尾的文件,且之前的名字是两个字符的文件,ls *.sh
例3:列出以“x或t”开头的文件,ls [x,t]*.*
例4:列出不以“x或t”开头的以“.txt”或“.sh”结尾的文件, ls [^x,t]*.{txt,sh}
小结:
*可以匹配任意字符。但是不能匹配以“.”开头的文件
?可以匹配1个字符
^可以取反判断
[]可以包含一个范围内的字符,匹配其中之一
{}可以包含多个并列的字符串,匹配其中一个字符串
如果不想使用通配符,可以使用set -f命令禁止通配符使用。