我必须使用 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,执行相同的 、sort
和tail -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