如何在 shell 中创建日期生成器?

How to create a date generator in shell?

我想从过去 4 年的网站中提取一些信息,每个文件都是基于日期的,例如 http://ransompull.com/pullme/2013-04-06/example.2013-04-06.txt

这是起始文件,今天结束,所以我想提取过去 4 年的所有 txt 文件。

我尝试了什么:

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

不用计算年月日, 您可以只计算相对于开始日期的天数。 如果你有 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

试试这个:

$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(-$_))}