BASH/PHP从多列日志中获取最小/最大值

BASH/PHP从多列日志中获取最小/最大值

问题描述:

好的,我现在有另一个问题,希望是最后一个。我用一些rasperry pi传感器来收集温度。 bash脚本在白天写日志文件whatever_ $ day.log。它看起来像(日期,时间,传感器1,传感器2,传感器3):BASH/PHP从多列日志中获取最小/最大值

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); 

,但我想避免创造几十个日志文件或使每一个传感器和每一个最大/最小/ Av值的要求,我只想一个日志然后用Bash或PHP脚本读取/创建一天结束时的最大/最小/平均值,并将这些值保存到另一个日志文件(每月日志,如[eg.: $day $min $max $average [append to >>] $month_sensor1.log]。我使用thi用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]这样的列读取日志文件。我在这里阅读了其他一些提交内容等,但说实话,我完全失去了,这对于我的小型非程序员大脑来说太大了。/o \

任何想法?感谢高级和对我的低级英语感到抱歉!

您的文件格式不适合自动处理。最好使用','或';'作为分隔符。然后,您可以使用拆分函数在PHP中分割您可以使用的数组中的一行。如果在值之间始终有两个空格,则可以使用当前格式,但如果出现任何错误,则会使调试变得更加困难。