Key*_*ani 0 linux bash web-scraping
我是bash和Linux的新手.所以这可能是一个愚蠢的问题.
我正在尝试制作一个bash脚本来从网站下载多个文件.文件位于格式的URL中http://example.com/xyz/abc/2016/201601031400.tar.gz
请注意,文件名包含年,月,日期和时间.该数据贯穿了2007/01/01至2016/12/31的所有日期; 时间总是保持不变:"1400".
我想遍历日期范围中的每个日期,并希望下载所有tar.gz文件.
有人可以帮我解决循环部分并动态生成wget下载文件的URL吗?
如果您不介意花几秒钟来调用date
几千次(与网络往返次数相比这将是微不足道的),您可以在开始时间添加几天.使用一个简单的for
循环(注意你的范围内有3653天),并使用date
适当格式化每个循环:
#!/bin/bash
start='14:00 2007-01-01'
for i in {0..3652}
do
d=$(date -d "$start +$i days" '+http://example.com/xyz/abc/%Y/%Y%m%d%H%M.tar.gz')
echo "$d" # or wget, or whatever
done
Run Code Online (Sandbox Code Playgroud)
上面,我们使用-d
参数来date
添加初始日期的天数,并使用format参数将日期/时间值插入到字符串中.