gpt4 book ai didi

linux - bash 通配符 n 位

转载 作者:太空狗 更新时间:2023-10-29 11:23:48 26 4
gpt4 key购买 nike

所以我在 tmp 目录中有以下文件:

 file.0
file.1
file.t9
file.22
file.4444

如果我只想列出以“.digits”(0, 1, 22, 4444) 结尾但不是 (t9) 结尾的文件,我可以尝试使用这样的通配符:

 ls tmp/file.{[0-9],[0-9][0-9],[0-9][0-9][0-9],[0-9][0-9][0-9][0-9]}

但是我得到了以下带有丑陋错误的结果

 ls: cannot access tmp/file.[0-9][0-9][0-9][0-9]: No such file or directory
file.0
file.1
file.22
file.4444

我也尝试过使用 {0..999},但这也会导致相同类型的错误(以及更多错误)。关于如何在没有专家错误的情况下执行此操作的任何线索?

最佳答案

至少在 bash 4 中,当启用 extglob shell 选项时:

shopt -s extglob
ls /tmp/file.+([0-9])

那里的模式+([0-9])匹配一位或多位数字。

您可以在 man bash模式匹配部分阅读更多相关信息。

更新

实际上,正如@chepner 指出的那样,由于 extglob 是在 2.02 版中引入的,这应该适用于您今天遇到的几乎所有 bash,除非您拉动了您的从岩石或其他东西中分发。

关于linux - bash 通配符 n 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20368577/

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