센서 명령을 사용하여 심부 온도 찾기

센서 명령을 사용하여 심부 온도 찾기

명령을 사용하여 2자리 온도의 반환 값을 얻으려고 하는데 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

관련 정보