Linux平台脚本:
zgrep "Storage Summary" /Storage/log/spoold/spoold.log.1.bz2|awk '{print $1, $2, $11, $17}'| sort -u
O/P :
November 19 27572.22 82.28
November 19 27585.55 82.32
November 19 27603.04 82.37
November 19 27611.72 82.40
November 19 27618.48 82.42
November 20 27631.96 82.46
November 20 27633.70 82.46
November 21 27645.05 82.50
November 21 27651.01 82.51
November 21 27652.94 82.52
November 21 27659.65 82.54
November 21 27674.55 82.58
November 21 27684.02 82.61
November 21 27691.34 82.63
November 21 27691.52 82.63
November 21 27697.52 82.65
November 22 27705.91 82.68
November 22 27729.71 82.75
November 22 27733.09 82.76
November 22 27770.01 82.87
我需要这样的输出
对于 $2
的每次出现(每天),计算 $11
和 $17
的平均值,然后将 o/p 打印为 打印 $1、$2、$11、$17
最佳答案
zgrep "Storage Summary" /Storage/log/spoold/spoold.log.1.bz2 | awk '
{ date=$1 " " $2; used[date] += $11; usedp[date] += $17; count[date]++; }
END { for (d in used) { print d, used[d]/count[d], usedp[d]/count[d] } }
'
对于每个唯一日期,这会计算已用空间和已用空间百分比的总和,记录条目数,完成后打印出平均值 (total/number_of_entries)。 (我同时使用 $1 和 $2 作为日期,以防你想使用它超过一个月)。
关于linux - 对于第 2 列的唯一值,计算 linux 中第 11 列和第 17 列的所有对应值的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20165075/