我需要平均系统上四个 CPU 核心的温度。我使用以下命令获取各个核心的温度:
sysctl -a | awk '/temperature/ {print $2;}'
这会输出以下输出:
53.0C
53.0C
52.0C
52.0C
然后我将其传递给 sed 和 tr,并通过一些 script-fu 我最终得到了以下一行:
echo `sysctl -a | awk '/temperature/ {print $2;}' | sed s/C// | tr '\n' '+' | sed 's/\(.*\)+/\1/'` | bc`
结果是:
210
我现在只需要划分 210/4
以获得我的平均水平,但我对如何实现这一目标感到困惑,作为我已经酝酿的一句台词的延伸。由于其他一些限制,我需要将其保留为一句台词。
我确信有一种更简单的方法可以实现我所追求的目标,任何指示都会受到赞赏!
最佳答案
使用 awk:
sysctl -a | awk -F '[ C]' '/temperature/{sum+=$2} END{print sum/NF}'
输出:
52.5
参见:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR
关于bash - 将 cpu 温度的平均值作为一行脚本获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52687261/