我有一个用于获取文件夹中所有.jpg和.jpeg文件的当前脚本,我的bash脚本如下所示
shopt -s nullglob
CURRENT_IMAGE_FILES=($DIR/*.jpg $DIR/*.jpeg)
echo ${#CURRENT_IMAGE_FILES[@]}
shopt -u extglob输出的结果如下(1.jpg,3.jpg,5.jpg,2.jpeg ,4.jpeg)。因为搜索器首先跟踪所有.jpg,然后才能找到.jpeg的其余部分。
这段代码的问题是,它首先获取所有的jpg文件,然后再获取所有的jpeg文件。然而,我想获得所有的jpg和jpeg文件增量如下(1.jpg,2.jpeg,3.jpg,4.jpeg,5.jpg)
发布于 2014-09-18 11:32:29
一旦设置了extglob,它就像下面这样简单
shopt -s nullglob extglob
CURRENT_IMAGE_FILES=("$DIR"/*.@(jpg|jpeg))由于单个模式将匹配所有目标文件,因此它们将一起排序,而不是先对只与*.jpg匹配的文件进行排序,然后对与*.jpeg匹配的文件进行排序。当然,只有当文件名采用正确的格式时,排序才会起作用。10.jpg仍然会在1.jpg之前出现,但仅使用globs对此无能为力。
https://stackoverflow.com/questions/25903591
复制相似问题