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

时间:2012-06-22 10:53:14

标签: string shell unix wildcard ls

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

processAlpha20120618.txt
processAlpha20120619.txt
processAlpha20120620.txt
processBeta20120618.txt
processBeta20120619.txt
processBeta20120620.txt
... etc.

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

ls -l *201206[19|20|21]*

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

我知道这可以使用 grep 查找,我只是想知道是否可以使用 ls 来完成。

2 个答案:

答案 0 :(得分:20)

如果您希望匹配确切的日期(看起来是你的日期),那么使用bash扩展的方式是:

ls -l *201206{19,20,21}*

答案 1 :(得分:6)

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

查看shell的文档 - 调用globbing