我有一个目录,其中包含超过100个具有不规则前缀名称的文件,例如
ABC2001.txt
abc2002.txt
Abc2003.txt
aBc2004.txt
SABC2001.txt
sabc2002.txt
SAbc2003.txt
saBc2004.txt
我想只调用那些以a / A,b / B,c / C与其年份相结合的方式启动的文件并使用它们。我可以使用脚本
手动执行3 x 3组合y1=2001; y2=2004
while [ y1 -le y2 ]
do
F1=ABC; F2=ABc; F3=Abc; F4=abc; F5=aBC; F6=abC; F7=abc; F8=AbC; F9=aBc
if [ -f $F1$y1.txt ] || [ -f $F2$y1.txt ] || [ -f $F3$y1.txt ] || [ -f $F4$y1.txt ] || [ -f $F5$y1.txt ] || [ -f $F6$y1.txt ] ||; then f1=ifile.txt
fi
doing some calculation with $f1
(( y1++ ))
done
我的问题是这种模式的大量文件。怎么做?
答案 0 :(得分:1)
for file in [aA][bB][cC][0-9][0-9][0-9][0-9].txt; do
echo $file
done
请注意,它没有匹配的文件,这将打印文字字符串[aA][bB][cC][0-9][0-9][0-9][0-9].txt
。在bash中,您可以通过设置failglob来抑制该行为:shopt -s failglob