首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shopt命令搜索问题

Shopt命令搜索问题
EN

Stack Overflow用户
提问于 2014-09-18 11:13:00
回答 1查看 78关注 0票数 0

我有一个用于获取文件夹中所有.jpg和.jpeg文件的当前脚本,我的bash脚本如下所示

代码语言:javascript
复制
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)

EN

回答 1

Stack Overflow用户

发布于 2014-09-18 11:32:29

一旦设置了extglob,它就像下面这样简单

代码语言:javascript
复制
shopt -s nullglob extglob
CURRENT_IMAGE_FILES=("$DIR"/*.@(jpg|jpeg))

由于单个模式将匹配所有目标文件,因此它们将一起排序,而不是先对只与*.jpg匹配的文件进行排序,然后对与*.jpeg匹配的文件进行排序。当然,只有当文件名采用正确的格式时,排序才会起作用。10.jpg仍然会在1.jpg之前出现,但仅使用globs对此无能为力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25903591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档