如何在 unix 中列出文件名中带有日期的特定文件 shell

How to list out specific files with dates in the file name in unix shell

如果我问的是重复的问题,我深表歉意。我的 google 技能暂时离开了我,我不知道如何表达我的问题才能找到答案。

我在 unix 服务器上工作,我有一堆文件名是这种格式的文件:

alert_YYYY-MM-DD.tsv

我正在尝试根据日期列出特定范围的文件,但出于某种原因,它无法正常工作。

出于某种原因这有效:

$ ls alert_2015-08-0[1-9].tsv
alert_2015-08-01.tsv  alert_2015-08-04.tsv  alert_2015-08-07.tsv
alert_2015-08-02.tsv  alert_2015-08-05.tsv  alert_2015-08-08.tsv
alert_2015-08-03.tsv  alert_2015-08-06.tsv  alert_2015-08-09.tsv

但这并没有,即使文件存在:

$ ls alert_2015-08-[10-15].tsv
ls: alert_2015-08-[10-15].tsv: No such file or directory
$ ls alert_2015-08-1[0-5].tsv   ### but the files exist in the directory!!
alert_2015-08-10.tsv  alert_2015-08-12.tsv
alert_2015-08-11.tsv  alert_2015-08-14.tsv

我也在尝试从个位数到青少年或青少年到 20 多岁,但它也不起作用,尽管它可能比上面更难:

e.g. 
$ ls alert_2015-08-[09-15].tsv
ls: alert_2015-08-[09-15].tsv: No such file or directory

我不确定这是一个 glob 问题还是正则表达式问题,但这很烦人,因为从逻辑上讲,我上面写的应该有效,但它不起作用,我不明白为什么,除了我有语法错误的。在此先感谢您的帮助。

[]中的数字最多为0-9。

$ ls alert_2015-08-[0-1][0-9].tsv
alert_2015-08-01.tsv    alert_2015-08-10.tsv    alert_2015-08-14.tsv
alert_2015-08-04.tsv    alert_2015-08-11.tsv
alert_2015-08-07.tsv    alert_2015-08-12.tsv