Pular para o conteúdo

Find em periodo de datas no nome do arquivo

Responder tópico
  • Denunciar
  • Indicar

1. Find em periodo de datas no nome do arquivo

Enviado em 04/09/2013 - 15:24h

Oie,
seguinte, eu tenho vários arquivos que no nome deles vem escrito as datas, tipo:
prefix_20120101sufix.jpg
prefix_20120102sufix.gif
...
prefix_20130630sufix.tif

E eu preciso dar um Find em um diretório para trazer os arquivos entre uma data inicial e uma data final qualquer.

Então rodei esse comando:
find . -name "*" -type f | sort | sed -n '/_20120830/,/_20130630/p'


Até ai tudo certo, ele realmente trouxe para mim, o problema é que se eu colocar uma data inicial ou final que não exista ele não traz nada, isso é um grande problema para o que estou fazendo.

Alguém sabe alguma alternativa eficiente, rápida e otimizada?

Responder tópico

2. Re: Find em periodo de datas no nome do arquivo

Enviado em 04/09/2013 - 17:57h

De relance eu fiz assim, mas lógico que dá pra otimizar e ficar mais eficiente:

Data inicial: 20110101
Data final: 20130101


find . -type f | sort | while read FILE; do if [ "$(echo $FILE | sed 's/[^0-9]*//g' | grep -v ^$)" -gt "20110101" ] 2> /dev/null && [ "$(echo $FILE | sed 's/[^0-9]*//g' | grep -v ^$)" -lt "20130101" ] 2> /dev/null; then echo $FILE; fi; done
*tudo uma linha só

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder