Find em periodo de datas no nome do arquivo

1. Find em periodo de datas no nome do arquivo

Patrícia Buzzatto Siqueira
patbuzzatto

(usa Ubuntu)

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?


  


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

Fernando
phoemur

(usa Debian)

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ó






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts