我已经设法从我的系统上的实时数据中自动绘制图表,使用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
我希望能够:
添加变量以使绘图线更具可读性
例如
条件 = "/Mon/"
和操作 = "print $4,substr($0,match($0,/temp=[0-9.]+/)+5,RLENGTH-5)"
如果条件适用则适用
例如
如果记录以周一开始 然后绘制“Mon的情节代码”
或者如果记录以Tue开头 然后绘制“Tue的情节代码”
但是,每次我尝试分离绘图线时都会出现语法错误。
我可以做这些事吗,如果是这样的话?
这是我previous post的链接以及我如何进入这个阶段。
答案 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