shell脚本中的子串温度

时间:2015-07-16 10:40:51

标签: bash awk

我正试图获得机器的温度,但是当我使用以下命令时:

sensors | awk '/thermistor/ && /temp5/ {print $2}'|awk 'sub("/+/","",$1) sub("/.0°C/","",4$)'

它给我举例+26.0°C我希望输出为26我尝试了fllowing它给了我相同的结果

sensors | awk '/thermistor/ && /temp5/ {print $2}'|awk 'gsub("/+","") gsub("/.0°C","")'

请告知谢谢

2 个答案:

答案 0 :(得分:1)

gsub似乎是个问题:

gsub("/.0°C","");

因为第一个参数是无效的正则表达式字符串。

将其替换为:

gsub(/\.0°C/,"");

答案 1 :(得分:1)

你的gsub命令应该是,

echo '+26.0°C' | awk '{gsub(/\+|\.0°C/, "")}1'

+.是正则表达式中的特殊字符。你必须逃避它,以匹配那些的lietral字符。而且你必须在正斜杠分隔符中编写正则表达式模式。

DEMO