2017-10-04 21 views
0

FTP 서버에서 호스팅되는 대형 NetCDF 파일에서 하나의 변수를 추출하려고합니다. 좋은 방법 중 하나는 wget으로 파일을 하나씩 다운로드하고 ncks을 사용하여 새로운 변수 .nc에 원하는 변수를 가져오고 원본 파일을 삭제하는 것입니다. 그러나 원래 .nc 파일이 크기 때문에 다운로드하는 데 시간이 오래 걸립니다.파일 이름이 변경되는 대용량 데이터 세트가있는 NCO의 NCKS 사용

입력 파일로 FTP 서버의 파일을 사용하는 NCO 기능을 사용하려고했지만 의 적절한 번역을 wget cyg05*.nc에 찾는 데 문제가 있습니다.

는 여기가에 관심이있는 폴더 중 하나입니다 : 만 실제 파일 이름의 첫 5 개 문자를 추적 할 ftp://podaac.jpl.nasa.gov/allData/cygnss/preview/L1/v1.1/2017/077/

, 나머지에 대해 걱정하지 않는다. 내가 시도 :

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을 사용 중입니다.

답변

1

와일드 카드 문자 ("*"및 "?")는 NCO와 함께 로컬 파일 및 SSH 프로토콜을 통해 작동하지만 FTP 프로토콜을 통해 작동하지 않습니다. wget은 NCO보다 더 똑똑하며 FTP 프로토콜을 통해 glob 파일을 만들 수 있습니다. 기본적으로 NCO는 FTP 프로토콜을 통해 작동하기 위해 전체 파일 이름을 알아야합니다. 아마도 wget 메서드를 사용하는 것이 가장 간단 할 것입니다. NCO globbing이 FTP를 통해 작동하더라도, 여전히 전체 파일을 다운로드하므로 wget보다 빠르지 않습니다.

+0

@Charlie Zender에 대한 설명 주셔서 감사합니다! 'wget'보다 빠르지 않다는 것을 아는 것도 도움이됩니다. 그건 그렇고, NCO를 개발 한 모든 위대한 일에 감사드립니다! –