Newtonjr.
(usa CentOS)
Enviado em 23/09/2013 - 09:19h
Só teve um probleminha: é que a saída coloca o primeira letra do mês em maiúsculo; tipo se script for chamado com '18/09/2013', a saída seria 'Set1813'.
Eu dei uma "corrigida" para o meu cenário, ficou assim:
if [ $1 = '*' ]; then
nomeArq=`date +%b%d%y | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ ÁÂÃÉÊÍÓÔÕÚÇ/abcdefghijklmnopqrstuvwxyzàáâãéêíóôõúç/'`
else
nomeArq=`echo "$1" | awk -F'/' '{print $2FS$1FS$3}' | xargs -i date -d'{}' +%b%d%y | tr '[A-Z]' '[a-z]'`
fi
onde $1, é a data como parâmetro de entrada número 01 no formato DD/MM/YYYY; se o script for chamado com '*', significa que a data deve ser a data atual e/ou corrente. Lembrando que ainda vou testar, pois o resultado deve ser atribuído para a variável 'nomeArq'.
Muito obrigado pela resposta nobre colega. Se não se importar, deixe eu ver a sua função. Pode ser mais elegante e/ou útil para outros em outros cenários..Um grande abraço companheiro.
PS: Para o caso default '*', eu poderia colocar a para executar o arquivo da data anterior. No caso, comando deveria ser:
date -d "yesterday" +%b%d%y | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ ÁÂÃÉÊÍÓÔÕÚÇ/abcdefghijklmnopqrstuvwxyzàáâãéêíóôõúç/'
Eis uma pequena dica se alguém precisar.