She*_*nan 4 variables bash gnuplot
我想将文件名作为变量输入到 GNUplot 中。我编写了一个 gnuplot 脚本,其中包括以下几行:
path="path/to/file"
plot "< cat $path | sed '1,4d'" using 1:2
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,gnuplot 窗口打开,但里面没有任何内容。如果我替换$path
为实际路径,则图表将正确绘制。
请问您能建议一种方法吗?谢谢。
您可以执行此操作以在命令中插入 gnuplot 变量的值:
path="path/to/file"
plot "< cat ". path ." | sed '1,4d'" using 1:2
Run Code Online (Sandbox Code Playgroud)
请注意,没有必要将cat
andsed
一起使用:
path="path/to/file"
plot "<sed '1,4d' ". path using 1:2
Run Code Online (Sandbox Code Playgroud)
小心你的空间!您可以使用print
而不是plot
查看将执行什么命令。
有时,我喜欢用sprintf
做这样的事情:
cmd = "1,4d"
plot sprintf("<sed '%s' %s", cmd, path) using 1:2
Run Code Online (Sandbox Code Playgroud)
虽然有点长,但我认为也更清楚了。
顺便说一下,在这种特殊情况下,您根本不需要使用任何外部工具。你可以这样做:
plot path using 1:2 every ::4
Run Code Online (Sandbox Code Playgroud)
这将跳过文件的前 4 行。