我正试图获得机器的温度,但是当我使用以下命令时:
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","")'
请告知谢谢
答案 0 :(得分:1)
这gsub
似乎是个问题:
gsub("/.0°C","");
因为第一个参数是无效的正则表达式字符串。
将其替换为:
gsub(/\.0°C/,"");
答案 1 :(得分:1)
你的gsub命令应该是,
echo '+26.0°C' | awk '{gsub(/\+|\.0°C/, "")}1'
+
,.
是正则表达式中的特殊字符。你必须逃避它,以匹配那些的lietral字符。而且你必须在正斜杠分隔符中编写正则表达式模式。