Ubuntu 13.10 Servidor: wget altera o nome do arquivo baixado automaticamente

1

Eu tenho um script de shell simples no meu servidor Ubuntu 13.10 para baixar todos os arquivos em uma lista.

filen="/home/chester/test/workobject.txt"
dir_log="/home/chester/test"

if [ -f "$filen" ]
then
cd $dir_log
for n in 'cat $filen'
   do
     echo $n
     wget -O $n.txt -q http://domain.com/QuickSearch?object=$n&search=Overview
   done
else
   echo "Nothing to do."
fi

O conteúdo de workobject.txt :

9957881
9A39879

O script funciona corretamente. No entanto, quando baixar os arquivos 9957881.txt , ele altera o nome do arquivo para 9Z44X7~P.txt .

O que há de errado com o roteiro?

    
por Chester 03.12.2013 / 08:18

2 respostas

1

Eu verifiquei a saída e ela mostra um %0D no nome do arquivo. Após mais pesquisas, descobri que esta é a quebra da linha à direita no workobject.txt . Infelizmente, não posso fazer nada sobre a formatação do arquivo workobject.txt porque ele está sendo enviado apenas para o meu servidor via scp .

Eu apenas deixo o script fazer a mesma coisa e simplesmente renomear todos os arquivos após o processamento para remover o %0D do nome do arquivo.

O script final é assim:

filen="/home/chester/test/workobject.txt"
dir_log="/home/chester/test"

if [ -f "$filen" ]
then
cd $dir_log
for n in 'cat $filen'
   do
     wget -q http://domain.com/QuickSearch?object=$n
   done
else
   echo "Nothing to do."
fi
rename "s/%0D//g" Quick*

Trabalhou como um encanto.

    
por Chester 03.12.2013 / 11:08
1

Eu sugiro que você use:

wget -O - -q http://domain.com/QuickSearch?object=$n&search=Overview > $n.txt

Veja man wget para entender o motivo.

    
por Radu Rădeanu 03.12.2013 / 09:28