Eu tenho um script bash que raspa uma lista de urls para links para vários tipos de documentos. No final, o script usa wget
para baixar os arquivos. No entanto, estou tendo problemas com nomes de arquivos contendo espaço em branco no nome: wget
termina a url no espaço. Existe alguma maneira de usar sed
ou algo para alterar o espaço em branco para %20
aqui? Ou alguma outra solução? Este é o meu código:
for url in $(cat download.md)
do
lynx --listonly --dump $url | \
awk '/\.(pdf|doc|docx|odt)$/{ sub("^[ ]*[0-9]+.[ ]*","",$0); print}'
done > ~/links.txt
for i in $( cat ~/links.txt ); do wget $i;
done
Você perdeu os nomes completos dos arquivos durante a
$( ... )
substituição do comando. Basta pedirwget
para ler o arquivo diretamente: