我希望能将文件名作为变量输入给GNUplot。 我已经编写了一个包含以下代码的GNUplot脚本:
path="path/to/file"
plot "< cat $path | sed '1,4d'" using 1:2
当我运行脚本时,gnuplot窗口打开但是里面没有内容。 如果我用实际路径替换
$path
,图形就能正确绘制。
请问你有什么建议吗?谢谢。path="path/to/file"
plot "< cat ". path ." | sed '1,4d'" using 1:2
cat
和sed
:path="path/to/file"
plot "<sed '1,4d' ". path using 1:2
注意空格!您可以使用print
代替plot
以查看将要执行的命令。
有时,我喜欢使用sprintf
来完成这种操作:
cmd = "1,4d"
plot sprintf("<sed '%s' %s", cmd, path) using 1:2
我认为这段话略长但更加清晰。
顺便说一下,在这种情况下,您根本不需要使用任何外部工具。您可以直接执行以下操作:
plot path using 1:2 every ::4
这将跳过您的文件前4行。
plot
行是 gnuplot 命令。目前还不清楚的是path
变量是在 bash 中声明还是在 gnuplot 中声明,因为在这两种语言中都是有效的声明。 - Tom Fenech