首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“Bash”的Bash通配符模式

使用“Bash”的Bash通配符模式
EN

Stack Overflow用户
提问于 2016-02-24 03:46:18
回答 1查看 250关注 0票数 3

我正在尝试以下命令:

代码语言:javascript
复制
ls myfile.h1.{`seq -s ',' 3501 3511`}*

但是ls会引发错误:

代码语言:javascript
复制
ls: cannot access myfile.h1.{3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511}*: No such file or directory

似乎ls认为整行都是文件名,而不是通配符模式。但是,如果我只是在终端中复制命令ls myfile.h1.{3501,3502,3503,3504,3505,3506,3507,3508,3509,3510,3511}*,我就会得到预期的列表。

为什么输入命令是完全有效的,而不是seq的用法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-24 04:00:27

您的情况不需要seq,请尝试

代码语言:javascript
复制
$ ls myfile.h1.{3500..3511}

如果您想使用seq,我建议使用format选项

代码语言:javascript
复制
$ ls $(seq -f 'myfile.h1.%g' 3501 3511)

但我不认为有任何理由这样做。

更新:注意到我没有注意到原始帖子中的球体。这样,支撑扩展仍然是首选的方式。

代码语言:javascript
复制
$ ls myfile.h1.{3500..3511}*

如果bash支持零填充,甚至可以将常见的数字计算在内。

代码语言:javascript
复制
$ ls myfile.h1.35{00..11}*

如果没有,你至少可以抽出3个

代码语言:javascript
复制
$ ls myfile.h1.3{500..511}*

请注意,seq替代方案不适用于全局化。

其他答案有更多细节..。

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

https://stackoverflow.com/questions/35592860

复制
相关文章

相似问题

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