GNUplot的输入文件名作为变量

3

我希望能将文件名作为变量输入给GNUplot。 我已经编写了一个包含以下代码的GNUplot脚本:

path="path/to/file"
plot "< cat $path | sed '1,4d'" using 1:2

当我运行脚本时,gnuplot窗口打开但是里面没有内容。 如果我用实际路径替换$path,图形就能正确绘制。 请问你有什么建议吗?谢谢。

请在帖子中附上您的GNUplot命令。 - konsolebox
@konsolebox plot 行是 gnuplot 命令。目前还不清楚的是 path 变量是在 bash 中声明还是在 gnuplot 中声明,因为在这两种语言中都是有效的声明。 - Tom Fenech
1个回答

5
你可以这样来在你的命令中插值gnuplot变量的值:
path="path/to/file"
plot "< cat ". path ." | sed '1,4d'" using 1:2

请注意,没有必要同时使用catsed
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行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接