2017-08-11 47 views
1

我想拉從過去的4年一個網站上的一些信息,並且每個文件都是基於日期,就像http://ransompull.com/pullme/2013-04-06/example.2013-04-06.txt如何在shell中創建日期生成器?

,這是啓動文件,並將於今日結束,所以我想從去年把所有的txt文件4年。

我的嘗試:

DATE=`date +%Y` 
MONTH='01' 
DAY='1' 
for i in range(1,31); 
for j in range(01,12): 
do wget http://ransompull.com/pullme/$DATE$i/example.$DATE$i.txt; 
done 
done 

但這個錯誤似乎是迭代超過一個月,因爲它是不會放棄希望的關於如何從

把所有數據output.Any建議的日期是不可行http://ransompull.com/pullme/2013-04-06/example.2013-04-06.txthttp://ransompull.com/pullme/2017-08-10/example.2017-08-10.txt

+0

你的代碼看起來像bash的,但你還包括批處理和PowerShell標記。你想用什麼語言? – SomethingDark

回答

2

相反的計數年,月,日, 你可以只數相對於起始日期的天。 如果你有GNU實施date命令, 你可以用它來計算相對日期,例如:

date +%F -d '2013-04-06 + 1000 days' 

此輸出2016-01-01。 您可以創建一個循環,通過增加從開始的天數生成的日期,直到你到達終點:

start=2013-04-06 
end=2017-08-10 
date=$start 
days=0 

while [ "$date" != "$end" ]; do 
    date=$(date +%F -d "$start + $days days") 
    wget http://ransompull.com/pullme/$date/example.$date.txt 
    ((days++)) 
done 
1

試試這個:

$startdate=get-date 2017-08-11 
$enddate=$startdate.AddYears(-4) 

0..($startdate - $enddate).Days | %{wget ("http://ransompull.com/pullme/{0:yyyy-MM-dd}/example.{0:yyyy-MM-dd}.txt" -f $startdate.AddDays(-$_))}