Suponho que um dos seus arquivos seja https://www.url.com/2017-11-16.png
e apenas a data seja alterada. Você poderia usar Bash Brace Expansion para calcular as datas e baixar os arquivos em uma corrida:
wget https://www.url.com/{2016..2017}-{01..02}-{01..02}.png
No entanto, isso não funcionará para muito muitos URLs, como no seu caso, porque há um limite para o tamanho de um comando do terminal. Uma alternativa é um loop for
:
for i in {2016..2017}-{01..02}-{01..02}; do
wget https://www.url.com/$i.png
done
Mas você ainda receberá datas como 2017-02-31 com essa abordagem. Para obter apenas datas reais , precisamos de date
como neste script tirado de aqui :
#!/bin/bash
startdate=2017-11-14
enddate=2017-11-16
d=
n=0
until [ "$d" = "$enddate" ]; do
d=$(date -d "$startdate + $n days" +%Y-%m-%d)
wget https://www.url.com/$d.png
((n++))
done
Ajuste startdate
e enddate
para suas necessidades exatas. Se você precisar alterar o formato de data para, por exemplo, 20171116
, faça isso em ambas as variáveis e o comando date
, neste exemplo seria +%Y%m%d
.