同様の名前を持つ複数のペアのファイルに対して同じことを行います。

同様の名前を持つ複数のペアのファイルに対して同じことを行います。

したがって、温度と蒸気に対応するtmp_information_about_dataset.file形式とvap_information_about_dataset.file形式の複数のビッグデータファイルがあります。

したがって、各tmp_...ファイルには対応するvap_...ファイルがあり、これら2つのデータセットを使用していくつかの計算を実行し、out_information_about_dataset.fileの形式で対応する出力ファイルを生成します。

out明確に言うと、tmp / vapファイルの各ペアは、データセットに関する情報(つまり、tmpまたはvapの後のすべての文字)の後に同じであるため、その後の文字もデータセットに関する情報と同じであることを望みます。で作成されます。例えば

 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

辞書のすべてのファイルを取得し、一致するペアに対して計算を実行し、最初の3文字の後に同じファイル名を使用して出力ファイルの名前を指定する方法はありますか?

私は何を考えていますか?ここに答えのように動作しますしかし、辞書にあるファイルではなく、その名前の2つのファイルを使用する必要があり、別々の出力ファイルが必要であることはやや残念です。

答え1

まず、すべてのtmp_ファイルを繰り返します。

for file in tmp_*; do

その後、各tmp_ファイルに対して最初に-を使用してそのvap_ファイルをインポートし、tmpプレフィックスを削除して(変数自体は変更されません)、結果を使用できます。vap${file#tmp}${file#tmp}vap

for file in tmp_*; do ./process_stuff "${file}" "vap${file#tmp}" > "out${file#tmp}"; done

関連情報