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.