Como faço para encontrar um arquivo com um nome que depende da data atual (e um componente aleatório)?

3

Tenho que verificar um caminho específico todos os dias e encontrar o arquivo com o nome do formulário:

StaticData_Sets_yyyymmdd-232550.txt

A data no nome depois que a string StaticData_Sets_ é atualizada todos os dias, dependendo da data do sistema. O número após a data é aleatório.

Como posso encontrar o arquivo para a data atual no Unix?

    
por Jaipreet 28.10.2014 / 07:21

3 respostas

6

Use o comando date para gerar o dia atual com o formato de saída adequado e anexe essa sequência ao nome do arquivo da seguinte maneira:

filename=StaticData_Sets_$(date +"%Y%m%d")
find . -name "$filename*.txt"
    
por 28.10.2014 / 07:35
1

Esse comando find deve encontrar o arquivo com a data de hoje:

find /path/ -regex ".*\/StaticData_Sets_$(date +%Y%m%d)-[0-9]+\.txt"

Encontre todos os que contêm /StaticData_Sets_ , depois a data no formato desejado e um dígito ( [0-9]+ ).

    
por 28.10.2014 / 08:11
1

Se o arquivo estiver diretamente sob o caminho que você recebeu (sem subdiretórios extras), isso deve funcionar.

file=$path/StaticData_Sets_$(date +"%Y%m%d")-*.txt

Se houver, isso deve funcionar (talvez seja necessário ativar manualmente globstar no bash).

    file=$path/**/StaticData_Sets_$(date +"%Y%m%d")-*.txt
    
por 28.10.2014 / 12:42

Tags