Unix 如何使用wget检索http子文件夹中的文件
我正在尝试从中检索一些文件,例如。在该位置中,有与日期对应的子文件夹。每隔8天,就会有一个名为*L3b_8D_CHL.main.bz2的文件,我想下载它。(例如,一个完整路径为:“”) 对于单个文件,我可以通过以下方式下载:Unix 如何使用wget检索http子文件夹中的文件,unix,wget,Unix,Wget,我正在尝试从中检索一些文件,例如。在该位置中,有与日期对应的子文件夹。每隔8天,就会有一个名为*L3b_8D_CHL.main.bz2的文件,我想下载它。(例如,一个完整路径为:“”) 对于单个文件,我可以通过以下方式下载: wget -q -O - http://oceandata.sci.gsfc.nasa.gov/MERIS/L3BIN/2012/001/ |grep 8D_CHL|wget -N --wait=0.5 --random-wait --force-html -i - 有没
wget -q -O - http://oceandata.sci.gsfc.nasa.gov/MERIS/L3BIN/2012/001/ |grep 8D_CHL|wget -N --wait=0.5 --random-wait --force-html -i -
有没有一种方法可以让我在中的所有文件夹中循环查找与“8D_CHL”模式匹配的文件,然后下载它们?HTTP实际上没有子文件夹的概念,尽管该页面看起来确实如此,但它仍然返回一个HTML页面,其中充满了需要解析的标记和链接 但是,由于这些文件的名称是如此的不可预测,我很可能会忽略HTML,而只是猜测这些文件的位置 他们的名字是:
2010/001/M20100012010008.L3b_8D_CHL.main.bz2
2010/009/M20100092010016.L3b_8D_CHL.main.bz2
Which is
2010/001/M{year}{day}{year}{day+7}.L3b_8D_CHL.main.bz2
因此,我会猜测下载链接:
#!/bin/bash
for year in `seq 2002 2012`; do
for day in `seq -w 1 8 365`;
do
echo wget http://oceandata.sci.gsfc.nasa.gov/cgi/getfile/M$year$day$year$(printf "%03d" `expr $day + 7`).L3b_8D_CHL.main.bz2
done
done
样本输出:
wget http://oceandata.sci.gsfc.nasa.gov/cgi/getfile/M20122572012264.L3b_8D_CHL.main.bz2
wget http://oceandata.sci.gsfc.nasa.gov/cgi/getfile/M20122652012272.L3b_8D_CHL.main.bz2
wget http://oceandata.sci.gsfc.nasa.gov/cgi/getfile/M20122732012280.L3b_8D_CHL.main.bz2
注意。除了一年中的最后一次,即第361天到第365天,你必须换一种方式来完成这项任务。请参阅以下两篇相关文章: