在Gnuplot脚本中合并两个CSV文件

时间:2018-11-29 17:41:02

标签: gnuplot

这个问题是How to run a shell command in Gnuplot and place the output in new file 的延续,例子是相同的。

在该问题中,将回答如何获取一个CSV文件,并用","分隔每个数据,并从第8行中删除这些字符,然后,按第36列值对结果进行排序。 / p>

例如,我尝试过该解决方案,

`tail -n+8 Hight_6x6.csv | tr '",' ' ' | sort -nk36`

工作正常。

现在,我想做同样的事情,但是要合并两个相似的CSV文件的结果。也就是说,从第8行获取两个文件,将一个附加到另一个,然后按第36列进行排序。

以下行

`cat 2x2/Hight_2x2.csv <(tail +8 2x2b/Hight_2x2_b.csv) | tail -n+8  | tr '",' ' ' | sort -nk36`

做出我想在终端中执行的操作,但是在Gnuplot中给出了错误。 该错误表明存在意外的'('字符。 要合并的两个文件位于运行脚本的不同子目录(2x2和2x2b)中。 CSV文件位于此link中。

致谢

1 个答案:

答案 0 :(得分:3)

为避免转义单引号或双引号,可以使用第三种形式的引号 here-document 创建数据块。然后,您可以将数据块传递到bash命令中:

$datablock << EOD
cat a.csv <(tail -n+2 b.csv) | tail -n+8  | tr '",' '  ' | sort -nk36 >pe_H_6x6.txt
EOD

set print "|bash -x"
print $datablock
set print

此处的-x仅用于检查执行的命令。