Использование NCKS в NCO с большим набором данных с изменением имен файлов

Я пытаюсь извлечь одну переменную из больших файлов NetCDF, размещенных на FTP-сервере. Один из вариантов, который работает хорошо, это загрузить файлы один за другим с wget, получить переменную, которую я хочу в новом .nc использование файла ncks и удалите оригинальный файл. Тем не менее, оригинал .nc файлы большие, и их загрузка займет некоторое время.

Я хотел использовать возможность NCO использовать файл на FTP-сервере в качестве входного файла, но у меня возникают проблемы с поиском соответствующего перевода * в 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, но я не уверен, что понимаю решение, описанное там.

Я на MacOS 10.11.6.

1 ответ

Решение

Подстановочные знаки ("*" и "?") Работают с NCO для локальных файлов и по протоколу SSH, но не по протоколу FTP. wget умнее NCO и может обрабатывать файлы по протоколу FTP. В основном NCO необходимо знать полное имя файла для работы через протокол FTP. Так что, вероятно, проще всего использовать метод wget. Даже если NCO globbing работает через FTP, он все равно загрузит все файлы и, следовательно, будет не быстрее, чем wget.

Другие вопросы по тегам