UNIX'ls'命令 - 通配符'OR'运算符

Nos*_*dge 9 unix string shell ls wildcard

我有一个带有时间戳文件的目录,格式如下:

processAlpha20120618.txt
processAlpha20120619.txt
processAlpha20120620.txt
processBeta20120618.txt
processBeta20120619.txt
processBeta20120620.txt
... etc.
Run Code Online (Sandbox Code Playgroud)

我想要一个特定日期的列表.像这样的东西:

ls -l *201206[19|20|21]*
Run Code Online (Sandbox Code Playgroud)

显然上面的方法不起作用,但你可以看到我想要实现的目标.我希望匹配字符串"201206"后跟"19","20"或"21"的任何内容.

我知道这可以使用grepfind,我只是想知道是否可以使用ls完成.

And*_*bbs 20

如果你想要匹配确切的日期(它看起来你是),那么bash扩展的方法是:

ls -l *201206{19,20,21}*
Run Code Online (Sandbox Code Playgroud)


Ed *_*eal 6

ls不这样做 - shell扩展*等,然后将它们ls作为参数传递给它们.

查看shell的文档 - 它是调用globbing

  • 好吧,我查看了KSH globbing的文档并找到了答案.这可以用`ls -l*201206 @(19 | 20 | 21)*`来完成 (3认同)