
Ich habe also mehrere große Datendateien, die Temperatur und Dampf entsprechen, in der Form tmp_information_about_dataset.file und vap_information_about_dataset.file
Für jede tmp_...-Datei gibt es also eine entsprechende vap_...-Datei. Ich werde beide Datensätze verwenden, um einige Berechnungen durchzuführen und dann eine entsprechende Ausgabedatei in der Form out_information_about_dataset.file zu generieren.
Nur um das klarzustellen: Bei jedem Paar von tmp/vap-Dateien sind die Informationen über die Datensätze (also alle Zeichen nach tmp oder vap) identisch. Daher möchte ich auch, dass die Zeichen danach out
mit den Informationen über die Datensätze identisch sind, aus denen sie generiert wurden. Beispiel:
tmp_123ABC456_model1_2010.nc
vap_123ABC456_model1_2010.nc
out_123ABC456_model1_2010.nc
tmp_123CDF_model2_2010.nc
vap_123CDF_model2_2010.nc
out_123CDF_model2_2010.nc
Gibt es eine Möglichkeit, alle Dateien im Wörterbuch zu nehmen, die Berechnung an übereinstimmenden Paaren durchzuführen und die Ausgabedatei nach den ersten drei Zeichen mit einem identischen Dateinamen zu benennen?
Ich dachte etwasals ob diese Antwort hier funktionieren würdeaber die Tatsache, dass ich zwei Dateien mit entsprechendem Namen verwenden muss und nicht irgendeine Datei im Wörterbuch, und dass ich separate Ausgabedateien möchte, verwirrt mich ein wenig.
Antwort1
Iterieren Sie zunächst über alle tmp_
Dateien:
for file in tmp_*; do
dann tmp_
kann man für jede Datei die entsprechende vap_
Datei mit abrufen vap${file#tmp}
– zuerst ${file#tmp}
wird das tmp-Präfix entfernt (die Variable selbst wird nicht geändert), dann wird das Ergebnis mit verkettet vap
.
for file in tmp_*; do ./process_stuff "${file}" "vap${file#tmp}" > "out${file#tmp}"; done