如何根据日期格式 grep 文件名

如何根据日期格式 grep 文件名

我们在同一文件夹中有每小时和每天的文件:

data-2015-06-06-00.tsv
data-2015-06-06-01.tsv
data-2015-06-06-02.tsv
data-2015-06-06-03.tsv
data-2015-06-06.tsv
data-2015-06-07-03.tsv
data-2015-06-07-02.tsv
data-2015-06-07.tsv

如何从文件列表中获取唯一的日报。

我只需要 data-2015-06-06.tsv data-2015-06-07.tsv

答案1

另外三个选项:

ls  | grep ^data-...........tsv  

或者:

ls  | grep ^data-"[[:digit:]]\{4\}-[[:digit:]]\{2\}-[[:digit:]]\{2\}.tsv"

或者:

ls  | grep ^data-[1-2][0-1][0-9][0-9]-[0-1][0-9]-[0-1][0-9].tsv

答案2

今天的:

 ls date-$(date +%Y-%m-%d)*

昨天的:

 ls date-$(date +%Y-%m-%d -d yesterday )*

在哪里

  • date +%Y-%m-%d将格式化日期
  • -d yesterday使用昨天的日期
  • $( )构造、运行命令并将输出用作字符串

我假设您无法转发文件的上次修改时间。

编辑:

从今天起避免每小时:

 ls date-$(date +%Y-%m-%d).tsv

只得到日常使用@lcd047 的答案。

相关内容