以下に示すように、大容量データセットのファイルをマージする際に問題があります。私はあなたを助けて、そのようなことをすることができるスクリプトについて教えてください。
良い名前:fluxes_year_lat_long私は100以上の場所(lat_long)に対して30年間の毎日のFluxファイルを持っており、各ポイントファイルの1〜30年をマージしたいと思います。
私のファイルは次のとおりです
ファイル名1:fluxes_2000_50_70
2000 1 1 5000 ....
2000 1 2 2000 ....
.
.
.
2000 12 31 5000
YYYY M D Fluxes
ファイル名2:fluxes_2001_50_70
2001 1 1 5000
YYYY M D Fluxes
.
.
.
まで:
ファイル名30:fluxes_2030_50_70
2030 1 1 5000
YYYY M D Fluxes
.
.
.
各ファイルの行数は同じです。
2000年から2030年まで、各支店の場所の毎日のフラックスをマージする出力が必要です。
結果ファイル:fluxes_lat_long
YYYY MM DD Fluxes value.
また、スクリプトが fluxes_ という名前で始まるファイルを読み込み、マージしたいと思います。返信ありがとうございます。
ベストアンサー1
私考える与えられたファイルについて質問します。
fluxes_2000_10_10 fluxes_2001_10_10 fluxes_2003_10_10
そして
fluxes_2000_20_10 fluxes_2001_20_10 fluxes_2003_20_10
上記の各ファイルに対して緯度10_10に「すべて」ファイルを作成し、緯度20_10に「全」ファイルを作成します。
この場合:
bash$ for lat in $(ls -1 fluxes_* | sed 's/fluxes_[0-9]*_\([0-9]*_[0-9]*\)/\1/' |sort|uniq )
do
echo "processing $lat ..."
cat fluxes_[0-9]*_${lat} > fluxes_TOT_${lat}
done
ls -1 fluxes_* | sed 's/fluxes_[0-9]*_\([0-9]*_[0-9]*\)/\1/' | sort | uniq
for
緯度(x_y)数値の一意のペアの両方を見つけて、ループcat
とその緯度(すべての年)のファイル内容を使用して段階的に実行しますfluxes_TOT_x_y
。