2017-08-11 7 views
1

私は過去4年から、ウェブサイトからいくつかの情報を引き出したいと、各ファイルがhttp://ransompull.com/pullme/2013-04-06/example.2013-04-06.txtシェルで日付ジェネレータを作成する方法は?

のように、日付ベースであり、それは起動ファイルであり、それは今日終了したので、私は最後からすべての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.txt 代わりにカウント数年、月と日のhttp://ransompull.com/pullme/2017-08-10/example.2017-08-10.txt

+0

あなたのコードはbashのように見えますが、あなたはしましたバッチタグとPowerShellタグも含まれています。どのような言語を使用しようとしていますか? – SomethingDark

答えて

2

、 にあなただけの開始日からの相対日を数えることができます。 あなたがdateコマンドのGNUの実装を持っている場合は、 あなたは、たとえば、相対日付を計算するためにそれを使用することができます:

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(-$_))} 
関連する問題