我正在尝试为我的perl脚本提供几个文件按日历周。 它只需要从bash中获取所有文件:
foreach my $input (@ARGV){
...
}
命名约定如下:
FILE_XYZ_20140908_0000.000XYZ
这个月的第一周没问题。
FILE_XYZ_2014090[1-7]_*
..会匹配得很好。当一天从09变为10时,它变得棘手 是否有匹配201409 08 至201409 14 的所有文件的模式?
答案 0 :(得分:3)
我不确定Bash的旧版本,但在我的版本中(4.1.11(2))
echo 9{08..14}
返回
908 909 910 911 912 913 914
在旧版本中,您必须使用更复杂的表达式(在3.00.15(1)中测试):
echo 9{0{8..9},1{0..4}}
答案 1 :(得分:0)
如果使用
启用扩展模式支持shopt -s extglob
您可以指定以下模式:
FILE_XYZ_201409@(01|02|03|04|05|06|07)_*
FILE_XYZ_201409@(08|09|10|11|12|13|14)_*
FILE_XYZ_201409@(15|16|17|18|19|20|21)_*
FILE_XYZ_201409@(22|23|24|25|26|27|28)_*
模式不能很好地适应范围,这就是你需要明确写出来的原因。