lincolnsol
(usa Fedora)
Enviado em 05/10/2009 - 19:37h
Muito obrigado pela força fdmarp!!!
Mas ainda tenho mais uma duvida.
Seguindo os scripts que vc mostrou,eu "fiz" 3 scripts:
1° (vol.sh) - lista os arquivos do diretorio, transforma os nomes em variaveis e chama o corta_arquivo.sh
2° (corta_arquivo.sh) - lê o arquivo determinado pelo vol.sh, divide o arquivo onde foi determinado e chama orenomeia.sh
3° (renomeia.sh) - renomeia os arquivos de saida para o formato q eu presiso.
--------------------------------------------------------------------
PROBLEMA:
Mas brother as scripts não estão funcionando ... naum seibem pq, na realo procedimento acontece, porem no fim do processo os arquivos de saida estão ficando vazios
vc poderia dar uma lida nos scripts pra ver onde eu estou errando ???
segue abaixo os 3 scripts q estou usando e link para um arquivo de teste:
http://www.4shared.com/file/132893608/232e19eb/sounding_30_.html
--------------------------------------------------------------------
vol.sh
cd /home/Lincoln/Dados/Brutos/Alta\ Floresta/
ls -l sounding* | awk '{ print $NF }' > vol.lista.temp
processa0 ()
{
while read lista
do
cd /home/Lincoln/Scripts/
sh corta_arquivo.sh $lista
sleep 10 #coloquei esse sleep pra ver se dava tempo dos outros script terminarem antes dele começar denovo
done < vol.lista.temp
cd /home/Lincoln/Dados/Brutos/Alta\ Floresta/
#rm vol.lista.temp
}
processa0
--------------------------------------------------------------------
corta_arquivo.sh
arquivo_de_entrada="$1"
cd /home/Lincoln/Dados/Brutos/Alta\ Floresta/
processa ()
{
while read linha
do
controle=`echo $linha | cut -c 1-4`
if [ "$controle" = "<H2>" ]; then
nome=`echo "$linha" | sed -e 's/<H2>//g' -e 's/<\/H2>//g' | sed -e 's/ /_/g'`
particao=`echo "/home/Lincoln/Dados/Temp/""$nome".txt`
elif [ "$controle" = "<H3>" ]; then
particao="/dev/null"
else
echo "$linha" >> "$particao"
fi
cd /home/Lincoln/Scripts/
sh renomeia.sh
sleep 10
done < "$arquivo_de_entrada"
}
particao="/dev/null"
processa
--------------------------------------------------------------------
renomeia.sh
cd /home/Lincoln/Dados/Temp/
nome_velho=$(ls)
estacao=$(ls | cut -d"_" -f1 )
nome=$(ls | cut -d"_" -f3)
nome2=$(ls | cut -d"_" -f4)
ano=$(ls | cut -d"_" -f11 | cut -d"." -f1)
mes=$(ls | cut -d"_" -f10)
dia=$(ls | cut -d"_" -f9)
if [ $mes == Dec ]; then
mes=$((12))
fi
if [ $mes == Nov ]; then
mes=$((11))
fi
if [ $mes == Out ]; then
mes=$((10))
fi
if [ $mes == Sep ]; then
mes=$((09))
fi
if [ $mes == Aug ]; then
mes=$((08))
fi
if [ $mes == Jul ]; then
mes=$((07))
fi
if [ $mes == jun ]; then
mes=$((06))
fi
if [ $mes == May ]; then
mes=$((05))
fi
if [ $mes == Apr ]; then
mes=$((04))
fi
if [ $mes == Mar ]; then
mes=$((03))
fi
if [ $mes == Feb ]; then
mes=$((02))
fi
if [ $mes == Jan ]; then
mes=$((01))
fi
nome_novo=$(echo $nome $nome2 $ano $mes $dia.txt)
mv "$nome_velho" "$(echo $nome_velho | sed "s/$nome_velho/$nome_novo/")"
mv $nome_novo /home/Lincoln/Dados/Tratados/Alta\ Floresta/
cd /home/Lincoln/Dados/Tratados/Alta\ Floresta/
nome_novo2=$(ls)
for i in *' '* ; do mv "$i" "${i// /_}" ; done # esse comando eu não entendi direito mas sei q funcionou qundo eu testei
nome_novo2=$(ls)
echo $nome_novo2 Pronto !!!
--------------------------------------------------------------------