Faça o download de uma lista de arquivos e use o nome do domínio como nome do arquivo

1

Eu tenho um monte de arquivos para download que funciona muito bem com

wget -i list_of_urls

mas meu problema é que o wget usa o nome do arquivo baixado. Existe uma maneira (ou uma ferramenta diferente) que é capaz de usar todo o nome do arquivo de URL, por exemplo?

http://www.example.com/file1.html
http://www.example.com/file2.html

Levar para os arquivos:

http___www_example_com_file_1.html
http___www_example_com_file_2.html  
    
por PascalTurbo 06.09.2015 / 16:46

2 respostas

1

Use alguns scripts simples de bash. Por exemplo, se você tiver um arquivo "foo" com os URLs:

http://www.google.com/index.html
http://www.cnn.com/index.html

Você pode executar:

for i in 'cat foo'; do wget $i -O 'echo $i | sed 's/[^A-Za-z0-9]/_/g' | sed 's/_html$/.html/''; done

que produz

http___www_cnn_com_index.html
http___www_google_com_index.html
    
por 06.09.2015 / 17:20
0

Use a opção "-x" documentada aqui . Por exemplo, dado um arquivo "foo" com conteúdo:

http://www.google.com/index.html
http://www.cnn.com/index.html

Se você correr

wget -x -i foo

você receberá esses arquivos:

www.google.com/index.html
www.cnn.com/index.html
    
por 06.09.2015 / 17:07