阅读量:122
在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脚本时,熟练掌握这些通配符的用法可以帮助你更高效地处理文件和目录。