在Shell脚本中,通配符(wildcards)是一种模式匹配的方式,用于匹配文件名或路径
- 星号(*):匹配任意长度的字符串。例如,
*.txt
会匹配所有以.txt
结尾的文件。
#!/bin/bash for file in *.txt; do echo "Processing $file" done
- 问号(?):匹配单个字符。例如,
file?.txt
会匹配file1.txt
、file2.txt
等,但不会匹配file10.txt
。
#!/bin/bash for file in file?.txt; do echo "Processing $file" done
- 方括号([]):匹配方括号内的任意一个字符。例如,
[a-z].txt
会匹配以小写字母开头的.txt
文件。
#!/bin/bash for file in [a-z].txt; do echo "Processing $file" done
- 大括号({}):匹配大括号内的任意一个模式。例如,
{file1,file2}.txt
会匹配file1.txt
和file2.txt
。
#!/bin/bash for file in {file1,file2}.txt; do echo "Processing $file" done
- 反斜杠(\):用于转义特殊字符,使其成为普通字符。例如,
\*.txt
会匹配文件名为*.txt
的文件,而不是所有以.txt
结尾的文件。
#!/bin/bash for file in \*.txt; do echo "Processing $file" done
这些通配符可以组合使用,以创建更复杂的匹配模式。在编写Shell脚本时,熟练掌握这些通配符的用法可以帮助你更高效地处理文件和目录。