从数据文件中读取字符串值 - gnuplot

时间:2018-03-07 10:36:15

标签: file-io gnuplot

我正在尝试从数据文件中读取字符串值,以用作输入文件标识符。数据文件有多行和两个(制表符分隔的)列 - 第一列包含描述(字符串),第二列包含值(浮点数,字符串)。数据文件log.dat的结构如下:

method  'u05'
observations    11
...

我想阅读,例如,第二列的第一个元素,并将其存储在一个变量中,比如id,并使用它来标识用于绘图的输入文件data_-u05.dat

splot '../out/data_-'.id.'.dat' using 1:2:3 notitle

我找到了这个方法,但是它将整个第一行读作method 'u05'而不是第二个元素:

file = '../out/log.dat'
id = system( sprintf("sed -n '1p' %s", file) )

1 个答案:

答案 0 :(得分:0)

这个问题更多的是关于awk而不是gnuplot,但这应该有效。它使用单引号作为awk中的字段分隔符,打印字段2,然后停止。

id = system("awk -F\\' '{print $2;exit}' ".file)

单引号需要为shell进行转义,并再次在gnuplot中进行转义。如果要将其应用于第一行以外的特定行,则可以使用NR==指定行,例如

id = system("awk -F\\' 'NR==1{print $2;exit}' ".file)