我想从过去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
但这似乎是错误的,因为迭代月份和日期是不可行的,因为它没有提供所需的输出。关于如何从中提取所有数据的任何建议
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 :(得分: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 :(得分: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(-$_))}