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