andre.vmatos
(usa Arch Linux)
Enviado em 09/05/2008 - 21:25h
Hmm, eu axava que no servidor sempre entravam um arquivo in e um arquivo out. Então, é só colocar uma verificação. Axo que o script final ficaria assim:
> for i in `ls *in.gsm`; do
> if [ -f "$( echo $i | sed 's|in.gsm|out.gsm|g' )" ]
> then
> soxmix "$i" "$( echo $i | sed 's|in.gsm|out.gsm|g' )" "$( echo $i | sed 's|-in.gsm|.gsm|g' )
> rm -f "$i" "$( echo $i | sed 's|in.gsm|out.gsm|g' )"
> fi
> done
Ou seja, ele pega todos os arquivos terminados em in.gsm, verifica se existe o correspondente out.gsm e, se houver, ele mixa os dois e remove os dois usados na mixagem. Se nao houver, ele não faz nada, mas pode adicionar um else depois, para o caso de não haver o out. Vou passar uma nova "versão" do script, usando variáveis, pq colocando os seds direto no comando ficou meio bagunçado, então, ai vai:
for i in `ls *in.gsm`; do
IN="$i"
OUT="$( echo $i | sed 's|in.gsm|out.gsm|g' )"
CAT="$( echo $i | sed 's|-in.gsm|.gsm|g' )
if [ -f "$OUT" ]
then
soxmix "$IN" "$OUT" "$CAT"
rm -f "$IN" "$OUT"
else
mv "$IN" "$CAT"
fi
done
Eu jah coloquei o else ai, nao sei direito o seu problema, mas se for o que eu to pensando, então vc deve querer que, caso não exista o arquivo OUT, ele tome como o arquivo final (CAT) o arquivo IN. Sugiro que vc coloque para mover os arquivos finais para uma outra pasta, mas isso vc sabe fazer =]
Qualquer dúvida, só perguntar, vou continuar acompanhando o tópico, até vc colocar ele como finalizado, ok? Flwsss