Dateien in einer Schleife entpacken

Dateien in einer Schleife entpacken

Ich habe den folgenden Code, der Zahlen aus NetCDF-Dateien extrahiert und sie bei jeder Schleife in eine andere NetCDF-Datei einfügt.

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

Aus Platzgründen musste ich die Eingabedateien komprimieren und dieser Code funktioniert nicht mehr. Ich habe mich gefragt, ob ich einen Code erstellen könnte, der in einer Schleife eine Datei dekomprimiert (eine nach der anderen), das extrahiert, was ich brauche, und es dann am Ende der Schleife erneut komprimiert.

Also etwas in der Art:

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

Das Problem besteht darin, dass alle Dateien auf einmal entpackt werden, was zu viel Speicherplatz beansprucht. Wenn ich eine Datei nach der anderen entpacke, funktioniert mein ncrcat-Code nicht mehr, da er aus allen verfügbaren -entpackten- .nc-Dateien extrahiert.

Wie entpacke ich jeweils eine .nc-Datei und sorge dafür, dass die Zeile weiterhin 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.ncfunktioniert?

verwandte Informationen