如何在 Gnuplot 中连接和排序三个 CSV 文件

如何在 Gnuplot 中连接和排序三个 CSV 文件

我必须使用 Gnuplot 绘制 3 个 CSV 文件中包含的数据。

通常,我使用以下代码从 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 位于三个不同的目录中。数据从第 8 行开始,我必须取出",字符,并按第 19 列对数据进行排序。

我不知道如何扩展此代码以粘贴 3 个不同的 CSV,执行相同的 、sorttail -n+8命令tr,并获得.txt包含结果的最终文件。

答案1

我不确定 Gnuplot 具体是如何发挥作用的,但如果您正在寻找一种处理tail多个文件的方法,您可以简单地通过在命令行上传递它们的名称来实现。

唯一的问题是,tail除非您添加选项,否则它将用标题分隔输出以方便人类查看-q

   -q, --quiet, --silent
          never output headers giving file names

据我所知,您可以跳过流程替换,并且只需进行多次(重新)排序即可

tail -q -n+8 ../Q1a/sim_Q1.csv ../Q1b/sim_Q1.csv ../Q1c/sim_Q1.csv | tr '",' '  ' | sort -nk19

相关内容