我正在尝试从数据文件中读取字符串值,以用作输入文件标识符。数据文件有多行和两个(制表符分隔的)列 - 第一列包含描述(字符串),第二列包含值(浮点数,字符串)。数据文件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) )
答案 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)