Raf*_*afe 2 linux bash wildcard
所以我在tmp目录中有以下文件:
file.0
file.1
file.t9
file.22
file.4444
Run Code Online (Sandbox Code Playgroud)
如果我只想列出以'.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]}
Run Code Online (Sandbox Code Playgroud)
但是由于丑陋的错误我得到了以下结果
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
Run Code Online (Sandbox Code Playgroud)
我也尝试使用{0..999},但这也会导致相同类型的错误(以及更多错误).如何做到这一点的线索没有专家的错误?
Sto*_*ica 15
至少在bash 4中,extglob启用shell选项时:
shopt -s extglob
ls /tmp/file.+([0-9])
Run Code Online (Sandbox Code Playgroud)
+([0-9])那里的模式匹配一个或多个数字.
您可以在模式匹配部分中阅读有关此内容的更多信息man bash.
UPDATE
实际上,正如@chepner所指出的那样,自从extglob版本2.02 开始以来,这应该适用于bash你今天遇到的每一个,除非你把你的发行版从岩石或其他东西中拉出来.
| 归档时间: |
|
| 查看次数: |
9884 次 |
| 最近记录: |