압축이 풀린 파일을 반복합니다.

압축이 풀린 파일을 반복합니다.

netcdf 파일에서 숫자를 추출하여 각 루프마다 다른 netcdf 파일에 저장하는 다음 코드가 있습니다.

mapfile Latitude < <(tr -s ' ' '\n' < final_ADCP_Saved.matLatitude.txt) #tr is transform from to -s is squeeze. So look in the text files for all the spaces and replace them by newline '/n'
mapfile Longitude < <(tr -s ' ' '\n' < final_ADCP_Saved.matLongitude.txt)

echo "length of Lat is ${#Latitude[@]}"
echo "length of Lon is ${#Longitude[@]}"

outputNumber="$(ls -lq *_??????.nc | wc -l)"

echo "the number of output netcdf fles is ${outputNumber}"

valueI=`cat I.txt`
valueJ=`cat J.txt`
arrI=($valueI)
arrJ=($valueJ)

for ((i=1; i<=outputNumber; i++)) 
do
        echo "geknoei$i.nc"
        ncrcat -C -F -d nj_u,${arrJ[i]},${arrJ[i+1]} -d ni_u,${arrI[i]},${arrI[i+1]} -v vel_u *_??????.nc gekneoi$i.nc 

done

공간 문제로 인해 입력 파일을 압축해야 했고 이 코드는 더 이상 작동하지 않습니다. 필요한 것을 추출하기 위해 루프에서 파일의 압축을 한 번에 하나씩 풀고 루프가 끝날 때 다시 압축하는 코드를 작성하는 것이 가능한지 궁금합니다.

그럼 대략적으로 다음과 같습니다.

mapfile Latitude < <(tr -s ' ' '\n' < final_ADCP_Saved.matLatitude.txt) #tr is transform from to -s is search. So look in the text files for all the spaces and replace them by newline '/n'
    mapfile Longitude < <(tr -s ' ' '\n' < final_ADCP_Saved.matLongitude.txt)

echo "length of Lat is ${#Latitude[@]}"
echo "length of Lon is ${#Longitude[@]}"

outputNumber="$(ls -lq *_??????.nc | wc -l)"

echo "the number of output netcdf fles is ${outputNumber}"

valueI=`cat I.txt`
valueJ=`cat J.txt`
arrI=($valueI)
arrJ=($valueJ)

for ((i=1; i<=outputNumber; i++)) 
do
        echo "geknoei$i.nc"
        gunzip *_??????.nc.gz
        ncrcat -C -F -d nj_u,${arrJ[i]},${arrJ[i+1]} -d ni_u,${arrI[i]},${arrI[i+1]} -v vel_u *_??????.nc gekneoi$i.nc
        gzip *_??????.nc 

done

문제는 이렇게 하면 모든 파일의 압축이 한꺼번에 풀리므로 많은 공간을 차지한다는 것입니다. 한 번에 하나의 파일 압축을 풀면 ncrcat 코드가 사용 가능한 모든 -unzipped- .nc 파일에서 추출되기 때문에 더 이상 작동하지 않습니다.

라인 작업을 계속하면서 한 번에 하나의 .nc 파일 압축을 풀려면 어떻게 해야 합니까 ncrcat -C -F -d nj_u,${arrJ[i]},${arrJ[i+1]} -d ni_u,${arrI[i]},${arrI[i+1]} -v vel_u *_??????.nc gekneoi$i.nc?

관련 정보