zsh / bash上不区分大小写的Glob
时间:2020-03-06 14:58:10 来源:igfitidea点击:
我需要列出所有名称以" SomeLongString"开头的文件。但是'SomeLongString'的情况可能有所不同。如何?
我正在使用zsh,但是也欢迎使用bash解决方案。
解决方案
根据我们希望获得此列表的深度,find
提供了很多
在这方面:
find . -iname 'SomeLongString*' -maxdepth 1
这只会给我们当前目录中的文件。重要的是
-iname参数而不是-name参数。
重击:
shopt -s nocaseglob
ZSH:
$ unsetopt CASE_GLOB
或者,如果我们一般不希望启用不区分大小写的glob,则可以仅针对不同部分激活它:
$ print -l (#i)(somelongstring)*
这将匹配以" somelongstring"开头的任何文件(小写/大写的任意组合)。不区分大小写的标志适用于括号之间的所有内容,并且可以多次使用。阅读手册zshexpn(1)
以获取更多信息。
更新
几乎忘了,我们必须启用extendend globing才能起作用:
setopt extendedglob