Сервер Ubuntu 13.10: wget автоматически меняет имя файла загружаемого файла

У меня на сервере Ubuntu 13.10 есть простой сценарий оболочки для загрузки всех файлов в списке.

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

Содержимое workobject.txt:

9957881
9A39879

Сценарий работает правильно. Однако, когда он загружает файлы 9957881.txt, он меняет имя файла на 9Z44X7~P.txt.

Что не так со сценарием?

1
задан 3 December 2013 в 11:18

2 ответа

Я предлагаю вам использовать:

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

См. man wget, чтобы понять, почему.

0
ответ дан 3 December 2013 в 11:18

Я проверил вывод, и он показывает %0D в имени файла. Проведя дополнительные исследования, я обнаружил, что это разрыв задней линии на workobject.txt. К сожалению, я ничего не могу сделать с форматированием файла workobject.txt, потому что он только отправляется на мой сервер через scp.

Я просто позволил сценарию сделать то же самое и просто переименовал все файлы после обработки, чтобы удалить %0D, завершающий имя файла.

Итак, окончательный сценарий выглядит следующим образом:

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*

Работал как шарм.

0
ответ дан 3 December 2013 в 11:18

Другие вопросы по тегам:

Похожие вопросы: