複数のディレクトリ(「amazon」、「niger」、...)、その中に複数のサブディレクトリ(「gfdl」、「hadgem」、...)、その中に複数のサブディレクトリ(「rcp8p5」、「rcp4p5」、。 ..).最後のサブディレクトリには、常に同じフレームを持つ数千のテーブルを含む2つのフォルダ(「History」、「Projection」)があります。したがって、最後の2つのフォルダにあるテーブルをリンクしようとしています。サブディレクトリ)だから、テーブルが結合されるたびに、1つではなく1つのヘッダしかない1つの大きなテーブルだけがあります。
現在、次のループ構造を使用しています。
#!/bin/bash
# usage:cat_dat dirname
data_dir=/scratch/01/stevens/climate_scenario/river
for river in tagus
do
for gcm in gfdl-esm2m hadgem2-es
do
for scenario in rcp8p5 rcp4p5 rcp6p0 rcp2p6
do
find "${data_dir}/${river}/${gcm}/${scenario}" name \*.dat -exec cat {} + >> "${data_dir}/${river}/${gcm}/${scenario}.dat"
done
done
done
しかし、タイトルは消せません!どんな助けでも大変感謝します!ありがとうございます!
答え1
あなたは近いです。代わりに、最初の行をスキップしてcat
残りawk
の行を印刷できます。
find "${data_dir}/${river}/${gcm}/${scenario}" name \*.dat -exec awk 'NR > 1' {} + >> "${data_dir}/${river}/${gcm}/${scenario}.dat"
awk
これはデフォルトの動作に依存するため、非常に空のスクリプトです。 BEGINやENDはなく、デフォルトのジョブを使用して印刷します。
私はこのツールをawk
より頻繁に使用しているのでお勧めしますが、他のツールを使用しても同じ効果が得られます。
そしてsed:
sed 1d
そして尾:
tail -n +2
もちろん、Perl、Python、または他の言語を使用することもできます。