как 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 

Как получить каждый день из списка файлов.

Мне нужны только данные-2015-06-06.tsv data-2015-06-07.tsv

Еще три варианта:

 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 

сегодня:

  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.