我用这个来显示cpu温度。
回声CPU温度>> /home/andy/bin/HD_和_CPU_TEMPS.txt
sensors -f | grep "temp1" >> /home/andy/bin/HD_AND_CPU_TEMPS.txt
geany /home/andy/bin/HD_AND_CPU_TEMPS.txt
radeon是我的图形CPU。
radeon-pci-0008
Adapter: PCI adapter
temp1: +115.1°F (crit = +248.0°F, hyst = +213.6°F)
k10temp-pci-00c3
Adapter: PCI adapter
temp1: +82.4°F (high = +158.0°F)
(crit = +169.5°F, hyst = +168.3°F)
我要文件只显示第二个温度。
但是有两个temp1s?
怎么才能显示出第二个温度?
发布于 2020-08-14 04:55:35
以下代码仅在temp1
行跟随包含k10temp-pci-00c3
的一行时才会打印该行:
$ sensors -f | awk '/k10temp-pci-00c3/{f=1} f && /temp1/{print; f=0}'
temp1: +82.4°F (high = +158.0°F)
如果您还想要标题:
$ cat sensors-f | awk 'BEGIN{print"CPU Temperature"} /k10temp-pci-00c3/{f=1} f && /temp1/{print; f=0}'
CPU Temperature
temp1: +82.4°F (high = +158.0°F)
BEGIN{print"CPU Temperature"}
打印标题。/k10temp-pci-00c3/{f=1}
的行时,D11
将awk变量f
设置为1 (true)。f && /temp1/{print; f=0}
是真的,并且该行包含temp1
,则f
将打印一行。这也将f
设置为零(false)。$ sensors -f | sed -n '/k10temp-pci-00c3/,/temp1/{/temp1/p}'
temp1: +82.4°F (high = +158.0°F)
发布于 2021-01-16 01:45:12
您可以将芯片名作为参数sensors k10temp-pci-00c3
传递给传感器软件只读取这个特定的传感器。
$ sensors k10temp-pci-00c3
Adapter: PCI adapter
temp1: +82.4°F (high = +158.0°F)
(crit = +169.5°F, hyst = +168.3°F)
这将导致读取速度比读取所有可用的传感器更快,然后限制输出。
然后您只想得到temp1行,最简单的方法是使用grep。
$ sensors k10temp-pci-00c3 | grep temp1
temp1: +82.4°F (high = +158.0°F)
只获取温度:使用awk将这条线视为列,并得到第二列。
$ sensors k10temp-pci-00c3 | grep temp1 | awk '{print $2}'
+82.4°F
我相信这种方法工作更快,使用的处理能力更少。
对于其他有不同机器的人,传感器的输出可能是不同的,相应地改变什么到grep。在我的机器上,传感器标签是Tdie
而不是temp1
。
https://askubuntu.com/questions/1267036
复制相似问题