列出获取带或不带日期的文件

时间:2018-03-23 12:19:46

标签: unix ksh ls

我有file123.txtfile.txt

等文件

但是当我运行ls -l file[0-9]*.txt时,我只会file123.txt

如何获取这两个文件?我认为*表示“0或更多”,但它不起作用。 (我正在使用ksh,如果相关的话)。

2 个答案:

答案 0 :(得分:3)

是模式匹配,而不是正则表达式。

[0-9]*是不同的模式。 *不是正则表达式中的修饰符。

* Matches any string, including the null string.
[...]  Matches  any  one  of the enclosed characters.

您可以使用模式列表,其中*是所附模式列表的前缀

*(pattern-list) Matches zero or more occurrences of the given patterns.

ls file*([0-9]).txt将是零或更多数字的语法。

$ ls file*.txt
file123.txt  filea.txt  file.txt
$ ls file*([0-9]).txt
file123.txt  file.txt

有关详细信息,请参阅'文件名生成'在man ksh。 可以在此处找到更多示例KSH93 Extended Patterns

答案 1 :(得分:0)

您正在添加数字过滤器,只需将其删除即可返回以“file”开头并以“.txt”结尾的文件:

ls -l file*.txt