gpt4 book ai didi

使用 `seq` 的 Bash 通配符模式

转载 作者:行者123 更新时间:2023-11-29 09:18:07 28 4
gpt4 key购买 nike

我正在尝试以下命令:

ls myfile.h1.{`seq -s ',' 3501 3511`}*

但是 ls 引发错误:

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 却不行?

最佳答案

seq 你的情况不需要,试试

$ ls myfile.h1.{3500..3511}

如果你想使用seq 我会建议使用格式选项

$ ls $(seq -f 'myfile.h1.%g' 3501 3511)

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

更新:请注意,我没有注意到原始帖子中的通配符。有了这个,大括号扩展仍然是首选方式

$ ls myfile.h1.{3500..3511}*

如果你的 bash 支持零填充,甚至可以分解出公共(public)数字

$ ls myfile.h1.35{00..11}*

如果没有你至少可以提取 3

$ ls myfile.h1.3{500..511}*

请注意,seq 替代方案不适用于 globbing。

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

关于使用 `seq` 的 Bash 通配符模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35592860/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com