Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 如何使用wget检索http子文件夹中的文件_Unix_Wget - Fatal编程技术网

Unix 如何使用wget检索http子文件夹中的文件

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 - 有没

我正在尝试从中检索一些文件,例如。在该位置中,有与日期对应的子文件夹。每隔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 -

有没有一种方法可以让我在中的所有文件夹中循环查找与“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天,你必须换一种方式来完成这项任务。

请参阅以下两篇相关文章: