sexta-feira, 4 de outubro de 2013

Validação de Datas em Bash

Para fazer uma validação de um numero inteiro se ele representa uma data válida é possível utilizar o seguinte comando shell:

if (date --date 20050214 > /dev/null 2>&1); then echo "data valida"; else echo "data INVALIDA" ; fi

isto foi utilizado para selecionar um conjunto de arquivos que varia em um intervalo de dias, da seguinte maneira

data_inicio='20050115'
data_fim='20050215'
dir_dados='/dados'

for a in $( seq ${data_inicio} ${data_fim})
do
  if (date --date "$a" > /dev/null 2>&1)
    then
      #echo "data valida"
      ls -d "${dir_dados}/*${a}*" >> ${lista_W}
  fi
done


Que neste caso joga para uma lista o path com os dados para serem utilizados em outro processo.