我正在尝试在 gnuplot 中获取文件的第一个元素:
data = "file.dat"
x = `cat data | head -n 2 | tail -n 1 | awk '{print $1}'`
但是这一直给我以下错误:
no such file or directory
我应该写类似于以下的代码: x =
cat $data | head -n 2 | tail -n 1 | awk '{print $1}'
(带有美元符号)显然,这也是不正确的。
有任何想法吗?
You need to use a
set macro
然后使用符号@
获取变量data
的值(在Gnuplot中,@
类似于bash中的$
)。
因此,这应该是有效的。
x = `cat @data | head -n 2 | tail -n 1 | awk '{print $1}'`
除了使用反引号外,另一种可能性是使用system
函数。然后您可以构建任何字符串并将其作为shell表达式运行:
data = 'file.dat'
x = system("head -n 2 ".data." | tail -n 1 | awk '{print $1}'")
echo @col
”输出“1”,这是正确的,但是“set macros; col="1"; printecho "@col"
”会因为未扩展宏而退出并报错。但这只是一个小细节:)
。 - Christoph