使用传感器命令查找核心温度

使用传感器命令查找核心温度

我正在尝试使用命令获取 2 位数字 temp 的返回值sensors,这向我显示了以下内容:

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +40.0°C  (high = +85.0°C, crit = +95.0°C)  
Core 8:      +35.0°C  (high = +85.0°C, crit = +95.0°C)  
Core 9:      +40.0°C  (high = +85.0°C, crit = +95.0°C)  
Core 10:     +38.0°C  (high = +85.0°C, crit = +95.0°C)  

coretemp-isa-0001
Adapter: ISA adapter
Core 0:      +38.0°C  (high = +85.0°C, crit = +95.0°C)  
Core 1:      +37.0°C  (high = +85.0°C, crit = +95.0°C)  
Core 9:      +30.0°C  (high = +85.0°C, crit = +95.0°C)  
Core 10:     +31.0°C  (high = +85.0°C, crit = +95.0°C)

通过以下命令,我已经能够获取返回的值,但我需要一一获取值:

sensors | awk '{if (match($0, "Core 0")){printf("%d",$3);} }'

返回:4038

有没有办法逐一获取第一次或第二次出现?

答案1

看着man sensors

你可以使用:sensors -j

这会返回 JSON 格式的数据,然后可以对其进行解析并修剪为您需要的值。

答案2

$ sensors | sed -rn 's/.*Core 0:\s+([^ ]+).*/\1/p'
+40.0°C
+38.0°C

$ sensors | sed -rn 's/.*Core 0:\s+.([0-9.]+).*/\1/p'
40.0
38.0

$ sensors | sed -rn 's/.*Core 0:\s+.([0-9]+).*/\1/p'
40
38

相关内容