使用shell脚本在目录中调用一些不规则的命名文件

时间:2015-05-22 13:47:27

标签: linux shell unix

我有一个目录,其中包含超过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

我的问题是这种模式的大量文件。怎么做?

1 个答案:

答案 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