como grep os nomes dos arquivos com base no formato da data

0

Temos arquivos por hora e diários na mesma pasta:

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

Como obter o único diário da lista de arquivos.

eu preciso apenas de dados-2015-06-06.tsv data-2015-06-07.tsv

    
por user122690 09.07.2015 / 12:54

2 respostas

2

Mais três opções:

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

ou:

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

ou:

ls  | grep ^data-[1-2][0-1][0-9][0-9]-[0-1][0-9]-[0-1][0-9].tsv
    
por 09.07.2015 / 14:20
1

hoje:

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

ontem:

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

onde

  • date +%Y-%m-%d formatará a data
  • -d yesterday usa a data de ontem
  • $( ) construct, executa o comando e usa a saída como uma string

Eu suponho que você não pode retransmitir os arquivos nos últimos horários de modificação.

Editar:

para evitar a partir de hoje:

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

para obter apenas o uso diário da resposta do @ lcd047.

    
por 09.07.2015 / 13:11