Wget с входным файлом и выходным документом - PullRequest
4 голосов
/ 12 января 2010

У меня есть список URL-адресов, которые я хотел бы ввести в wget, используя --input-file.

Однако я не могу понять, как одновременно контролировать значение --output-document, что просто, если вы вводите команды одну за другой. Я хотел бы сохранить каждый документ как MD5 своего URL.

 cat url-list.txt | xargs -P 4 wget

И xargs есть, потому что я также хочу использовать функции max-procs для параллельной загрузки.

Ответы [ 4 ]

4 голосов
/ 12 января 2010

Не используйте cat. Вы можете прочитать xargs из файла. Со страницы man:

       --arg-file=file
       -a file
              Read items from file instead of standard input.  If you use this
              option, stdin remains unchanged when commands are  run.   Other‐
              wise, stdin is redirected from /dev/null.
2 голосов
/ 10 июня 2010

В своем вопросе вы используете -P 4, который предполагает, что ваше решение должно работать параллельно. GNU Parallel http://www.gnu.org/software/parallel/ может помочь вам:

cat url-list.txt | parallel 'wget {} --output-document "`echo {}|md5sum`"'
2 голосов
/ 12 января 2010

как насчет использования цикла?

while read -r line
do
   md5=$(echo "$line"|md5sum)
   wget ... $line ... --output-document $md5 ......
done < url-list.txt
1 голос
/ 12 января 2010

Вы можете сделать это так:

cat url-list.txt | пока читаешь url; делать wget $ url -O $ (echo "$ url" | md5); сделано

удачи

...