Распаковывать файлы в цикле

Распаковывать файлы в цикле

У меня есть следующий код, который извлекает числа из файлов 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работу линии?

Связанный контент