Вывод Wget в рекурсивном режиме - PullRequest
0 голосов
/ 09 марта 2011

Я использую wget -r для загрузки 3 .zip файлов с указанной веб-страницы.Вот что у меня есть:

 wget -r -nd -l1 -A.zip http://www.website.com/example

Прямо сейчас все zip-файлы начинаются с abc _ *. Zip, где * кажется случайным.Я хочу, чтобы первый загруженный файл назывался xyz_1.zip, второй - xyz_2.zip, а третий - xyz_3.zip.

Возможно ли это с помощью wget?

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 10 марта 2011

Попробуйте сначала получить список, а затем загрузить каждый файл отдельно.

let n=1
wget -nv -l1 -r --spider http://www.website.com/example 2>&1 | \
egrep -io 'http://.*\.zip'| \
while read url; do 
    wget -nd -nv -O $(echo $url|sed 's%^.*/\(.*\)_.*$%\1%')_$n.zip "$url"
    let n++
done
1 голос
/ 09 марта 2011

Я не думаю, что это возможно только с wget.После загрузки вы можете использовать простые сценарии оболочки для переименования файлов, например:

i=1; for f in abc_*.zip; do mv "$f" "xyz_$i.zip"; i=$(($i+1)); done
0 голосов
/ 09 марта 2011

Я не думаю, что есть способ сделать это с помощью одной команды wget.

У wget есть опция -O, которую вы можете использовать, чтобы указать, какой файл выводить, но в вашем случае это не сработает, потому что несколько файлов будут объединены вместе.

Вам нужно будет написать скрипт, который переименует файлы с abc_*.zip на xyz_*.zip после завершения wget.

Либо можно вызывать wget для одного zip-файла за раз и использовать опцию -O.

...