0

我正在尝试从托管在 FTP 服务器上的大型 NetCDF 文件中提取一个变量。一种行之有效的选择是使用 逐个下载文件,使用在新文件wget中获取我想要的变量并删除原始文件。但是,原始文件很大,下载它们需要一段时间。.ncncks.nc

我想使用 NCO 的功能来使用 FTP 服务器上的文件作为输入文件,但我无法找到*in的适当翻译wget cyg05*.nc

这是我感兴趣的文件夹之一:ftp: //podaac.jpl.nasa.gov/allData/cygnss/preview/L1/v1.1/2017/077/

我只想跟踪实际文件名的前 5 个字符,而不关心其余的。我努力了:

for i in `seq 77 1 257`;
    do
        if [ $i -ge 10 ] && [ $i -lt 100 ]; then
            for j in `seq 1 1 8`;
                do
                  ncks -l . ftp://podaac.jpl.nasa.gov/allData/cygnss/preview/L1/v1.1/2017/0$i/cyg0$j'......'.nc 2017_Day_0$i_Spacecraft_0$j.nc
                done
        fi
    done

我也尝试过替换'......',但没有任何运气*??????文件无法识别。我知道 NCO 的帮助,特别是本节: http: //nco.sourceforge.net/nco.html#Large-Numbers-of-Files,但我不确定我是否理解其中描述的解决方案。

我在 MacOS 10.11.6 上。

4

1 回答 1

1

通配符(“*”和“?”)在本地文件上与 NCO 一起使用,并通过 SSH 协议而不是通过 FTP 协议。wget 比 NCO 更聪明,可以通过 FTP 协议 glob 文件。基本上,NCO 需要知道完整的文件名才能通过 FTP 协议工作。所以使用 wget 方法可能最简单。即使 NCO globbing 通过 FTP 工作,它仍然会下载整个文件,因此不会比 wget 快。

于 2017-10-04T19:25:30.553 回答