1

使用 Gnuplot 读取数据时是否有使用多个管道的方法?下面将绘制直接从 SQL 语句接收到的数据。

plot "< sqlite3 tomato-rstats.db \"SELECT data FROM table;\""

我想要的是在数据到达 Gnuplot 之前对其进行处理。我知道我可以通过脚本传输 SQL 数据,输出到中间文件,然后绘制该文件,但我宁愿跳过临时文件。我想象了以下内容,但这显然不是正确的语法。

plot "< sqlite3 tomato-rstats.db \"SELECT data FROM table;\" | process.pl"

或者

plot "< process.pl < sqlite3 tomato-rstats.db \"SELECT data FROM table;\""

这可以通过其他语法实现吗?

4

1 回答 1

2

使用

plot "< sqlite3 tomato-rstats.db \"SELECT data FROM table;\" | process.pl"

正如你所建议的,在 gnuplot 中工作得很好。您可以使用管道命令的任意组合作为 gnuplot 的输入,例如,

plot "< cat file.txt | cut -f 5 | head -n 100" w l

绘制 的第五行中的前 100 个项目file.txt。应该注意的是,使用它作为绘图的输入是没有用的,因为这个处理可以在 gnuplot 本身内完成,但它显示了使用 UNIX 命令行及其管道来预处理输入的可能性。

不用说,这不适用于非 UNIX 系统,如 Windows。

于 2011-01-11T12:53:57.737 回答