3つのCSVファイルに含まれるデータをGnuplotでプロットする必要があります。
一般的に、次のコードを使用して2つのCSVファイルからプロットします。
$datablock << EOD `cat ../Q1a/sim_Q1.csv <(tail -n+8 ../Q1b/sim_Q1.csv | tr ""," " " | sort -nk19 )| tail -n+8 | tr ""," " " | sort -nk19 > ../Q1a/Q6_ressult.txt` EOD set print "|bash -x" print $datablock set print
CSVは3つの異なるディレクトリにあります。データは行8から始まり、"
と,
の文字を取り出し、列19でデータを並べ替える必要があります。
このコードを拡張して、同じことを行う3つの異なるCSVを貼り付ける方法がわかりません。sort
、tail -n+8
およびtr
コマンドを実行し、結果を含む最終的な.txt
ファイルを取得します。
回答
Gnuplotがこれに具体的にどのように作用するかはわかりませんが、tail
複数のファイルを作成する方法を探している場合はコマンドラインで名前を渡すだけでこれを行うことができます。
唯一の落とし穴は、tail
が出力をヘッダーで区切って、人間が見やすいようにすることです。 -q
オプションを追加します:
-q, --quiet, --silent never output headers giving file names
私が見る限り、プロセスの置換と複数の(r e)並べ替えは単純に行います
tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr ""," " " | sort -nk19
sed -n -e '8,470p'
を使用することはできますが、ソリューションを変更する方法がわかりません。問題は、3つのファイルのうちの1つでこの範囲を選択する必要があることだと思います。tail -q -n+8 file1 <(head -n 470 file2) file3
です。
head -n
を作成する必要があります。tail -q -n+8 file1 <(head -n470 file2 <(head -n380 file3)) file4 file5
のようなものを書くことはできますか?