首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不考虑大小写敏感性的情况下迭代多个文件扩展名?

如何在不考虑大小写敏感性的情况下迭代多个文件扩展名?
EN

Unix & Linux用户
提问于 2014-07-23 04:48:40
回答 1查看 6.5K关注 0票数 2

我已经看到了关于如何迭代多个文件扩展名的各种主题,但在大多数情况下,列表是定义的。

示例:

代码语言:javascript
复制
for file in ${arg}/**/*.{txt,h,py}
do
    ....
done

可以看到,.TXT文件将被忽略。不幸的是,回答这个问题的人说它只对bash4有效。但是我的安装程序使用bash3.x。

对怎么做有什么想法吗?

EN

回答 1

Unix & Linux用户

发布于 2014-07-23 06:57:39

使用zsh代替:

代码语言:javascript
复制
setopt extendedglob
for f ($arg/**/*.(#i)(txt|h|py)(N.)) {
  ...
}
  • **/:任意级别的子目录
  • (#i)将为其余的glob打开不区分大小写的匹配(如ksh93中的~(i) )。
  • (N.)是glob限定符。如果没有匹配的文件,N将不返回一个错误,而.只选择常规文件(相当于find's -type f)。您可以在其中添加一个D,以匹配点(隐藏)文件,然后下降到隐藏的目录(如默认的find )。
票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/146040

复制
相关文章

相似问题

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