繁体   English   中英

如何在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

我不确定这是一个全局问题还是正则表达式问题,但是这很烦人,因为从逻辑上讲,我上面写的内容应该可以工作,但不能,并且我不明白为什么,除了我的语法错误。 在此先感谢您的帮助。

[]中的数字最多应为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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM