You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用正则表达式从Ubuntu sensors输出提取处理GPU温度整数

提取Ubuntu中sensors输出的显卡温度整数值

没问题,我来帮你搞定从sensors输出里提取显卡温度整数值的需求。针对你给出的amdgpu显卡的输出内容,这里有几个实用的命令行方法,都是在Ubuntu终端里直接能用的:

方法1:grep + awk组合(直观易懂)

sensors | grep -E 'amdgpu.*temp1' | awk '{print int($2)}'

解释:

  • grep -E 'amdgpu.*temp1':先过滤出所有amdgpu显卡的温度行(也就是同时包含amdgpu和temp1的行)
  • awk '{print int($2)}':对每一行取第二列(也就是类似+50.0°C的内容),用int()函数把它转换成整数,自动去掉小数和符号,得到纯数字温度。

方法2:仅用awk(更简洁)

sensors | awk '/amdgpu/ && /temp1/ {print int($2)}'

解释:
awk直接内置了模式匹配,/amdgpu/ && /temp1/会筛选出同时包含这两个关键词的行,然后同样用int($2)提取温度整数值,省去了grep的步骤。

方法3:sed正则替换(适合正则爱好者)

sensors | sed -n '/amdgpu.*temp1/s/.*+\([0-9]*\)\.[0-9]°C/\1/p'

解释:

  • -n:只输出匹配处理后的行
  • /amdgpu.*temp1/:定位目标行
  • s/.*+\([0-9]*\)\.[0-9]°C/\1/p:用正则捕获+后面的整数部分(比如50),替换掉整行内容并打印出来。

如果想把所有显卡温度整数值放在同一行(用空格分隔),可以再加个tr命令:

sensors | grep -E 'amdgpu.*temp1' | awk '{print int($2)}' | tr '\n' ' '

输出会是类似50 47 52这样的格式。

内容的提问来源于stack exchange,提问作者ethereal1m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:10:12