wget устанавливает имя файла при пакетной загрузке - PullRequest
1 голос
/ 09 июля 2020

Я пытаюсь загрузить файлы, используя входной файл (a.txt), который имеет URL-адреса, используя следующие команды

wget -i a.txt

URL-адреса похожи на

https://domian.com/abc?api=123&xyz=323&title=newFile12
https://domian.com/abc?api=1243&xyz=3223&title=newFile13

Я хочу установить имя файла из URL-адреса с использованием тега заголовка (например, в приведенном выше URL-адресе имя загрузки файла должно быть newFile12), но не может найти никакого способа обойти это.

По порядку чтобы это сделать, мне нужно написать сценарий python (похожий на этот ответ { ссылка }) и запускать его один за другим, есть ли другой способ.

Ответы [ 2 ]

1 голос
/ 10 июля 2020

Вы можете создать сценарий «на лету» и передать его по конвейеру bash. Немного медленнее, чем wget -i, но сохранит имена файлов:

 sed "s/\(.*title=\(.*\)\)/wget -O '\2' '\1'/" a.txt

Когда вы будете удовлетворены результатами, вы можете перенаправить его на bash:

sed "s/\(.*title=\(.*\)\)/wget -O '\2' '\1'/" a.txt | bash
0 голосов
/ 09 июля 2020

Посмотрите на wget --content-disposition или l oop с wget -O <outputfile name> <url>

Следующая команда загружает файл с именем, предоставленным сервером (vim-readonly-1.1.tar.gz) вместо download_script.php?src_id=27233.

wget --content-disposition https://www.vim.org/scripts/download_script.php?src_id=27233
...