在bash中,sensors我计算机上的输出如下:
Adapter: ISA adapter
Physical id 0: +67.0°C (high = +84.0°C, crit = +100.0°C)
Core 0: +65.0°C (high = +84.0°C, crit = +100.0°C)
Core 1: +65.0°C (high = +84.0°C, crit = +100.0°C)
Core 2: +65.0°C (high = +84.0°C, crit = +100.0°C)
Core 3: +67.0°C (high = +84.0°C, crit = +100.0°C)
Run Code Online (Sandbox Code Playgroud)
我需要在一行中捕获bash,即物理id 0之后的温度,以及它的单位.
所以在这里,我希望命令完全返回67.0°C.
我试图连锁grep命令,这是我的尝试
sensors | grep -oEi "id[^C]+C" | grep -oEi "[\d.]+°C"
Run Code Online (Sandbox Code Playgroud)
因为使用grep似乎不可能进行分组,所以第一组用于捕获id 0: +67.0°C,第二组用于捕获,第二组用于捕获67.0°C.
但是,没有返回任何内容.然而,第一个grep似乎已经返回了它应该的样子.
那么如何捕获这个字符串?如果它是bash中的一行,任何其他技术都可以.
用awk:
sensors | awk '/^Physical id 0:/ {print $4}'
Run Code Online (Sandbox Code Playgroud)
输出:
+67.0°C
| 归档时间: |
|
| 查看次数: |
816 次 |
| 最近记录: |