gnuplot和awk语法问题

时间:2014-09-25 11:10:19

标签: awk gnuplot

我已经设法从我的系统上的实时数据中自动绘制图表,使用gpuplot脚本,通过awk管道原始数据。脚本command.gpl如下:

#------------------------run this file--------------------
#gnuplot /usr/src/scripts/plots/core_temp_data/command.gpl
#---------------------------------------------------------


set terminal png size 2100,1000
set output '/usr/src/scripts/plots/core_temp_data/output_sat.png'

set title "Core Temp versus Time"
set size ratio 0.4
set xdata time
set timefmt "%H:%M"
set format x "%H:%M"

plot "<awk '/Mon/{print $4, substr($0,match($0,/temp=[0-9.]+/)+5,RLENGTH-5)}' /var/log/rebootlogfile.log" using 1:2 with points # works

我希望能够:

  1. 添加变量以使绘图线更具可读性

    例如

    条件 = "/Mon/"操作 = "print $4,substr($0,match($0,/temp=[0-9.]+/)+5,RLENGTH-5)"

  2. 如果条件适用则适用

    例如

    如果记录以周一开始   然后绘制“Mon的情节代码”

    或者如果记录以Tue开头   然后绘制“Tue的情节代码”

  3. 但是,每次我尝试分离绘图线时都会出现语法错误。

    我可以做这些事吗,如果是这样的话?

    这是我previous post的链接以及我如何进入这个阶段。

1 个答案:

答案 0 :(得分:2)

目前你的问题有点过于宽泛,我认为你应该决定你想要解决的具体问题。听起来您可能会在gnuplot中使用sprintf来构建命令字符串。例如:

condition = "/Mon/"
action = "print $4,substr($0,match($0,/temp=[0-9.]+/)+5,RLENGTH-5)"    
file = "/path/to/file"
cmd = sprintf("<awk '%s {%s}' %s", condition, action, file)

plot cmd with points