[英]BASH/PHP get min/max from multi-column log
我用一些带有树莓派的传感器收集温度。 bash 脚本在白天写入日志文件whatever_$day.log
。 看起来像这样(日期、时间、传感器 1、传感器 2、传感器 3):
2017-03-16 08:15 27.3 25.4 16.8
2017-03-16 08:30 22.2 23.1 14.2
2017-03-16 08:45 24.1 24.3 14.6
2017-03-16 09:00 26.8 23.0 14.7
同时我知道,如何使用 PHP 获取最小值、最大值和平均值,但这仅适用于具有一列(只有一个温度)的简单日志文件:
$temperatures = file($file, FILE_IGNORE_NEW_LINES);
$min = min($temperatures);
$max = max($temperatures);
$average = array_sum($temperatures) / count($temperatures);
但我想避免创建数十个日志文件或为每个传感器和每个 max/min/av 值发出请求,我只想要一个日志文件一天并读取/创建 max/min/average 值使用 Bash 或 PHP 脚本结束一天并将值保存到另一个日志文件中(每月日志,例如 [ eg.: $day $min $max $average [append to >>] $month_sensor1.log
]。我使用此值通过 PHPlot 创建图表/图形。
但我不明白,如何通过 [ read whatever_$day.log and collect the second temperatur-value ~ $temperature[2] column and create the max / min / average values and save them into $maximum / $minimum / $average
] 等等。 我怎样才能做到这一点?
您的文件格式不适合自动处理。 最好使用 ',' 或 ';' 作为分隔符。 然后,您可以使用 php 中的split函数在可以使用的数组中拆分一行。 如果值之间总是有两个空格,则可以使用当前格式,但是如果出现任何问题,它会使调试变得更加困难。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.