Provavelmente, é mais fácil fazer uma iteração em toda a lista nesse caso (pois wget
parece não ter suporte para a criação dinâmica de nomes de arquivos de saída):
while read url; do
t=${url##*/} # removes protocol and hostname
pdf=${t%@*} # removes part from @ onwards
wget -O "$pdf" "$url"
done < LIST-OF-URLs
url
é o URL lido da lista de URLs no arquivo, pdf
é apenas a parte do nome do arquivo.
Caso os nomes não sejam exclusivos, você pode adicionar um número ao nome do arquivo, por exemplo, assim (assumindo que todos os arquivos são PDFs):
i=0
while read url; do
t=${url##*/} # removes protocol and hostname
pdf=${t%.pdf@*} # removes part from .pdf@ onwards
wget -O "$pdf-$i.pdf" "$url"
((i++))
done < LIST-OF-URLs
ou (se os arquivos tiverem sufixos diferentes)
i=0
while read url; do
t=${pdf##*/} # removes protocol and hostname
pdf=${t%@*} # removes part from @ onwards
wget -O "$i-$pdf" "$url"
((i++))
done < LIST-OF-URLs