/ / शेल स्क्रिप्ट में तापमान को प्रतिस्थापित करना

शेल स्क्रिप्ट में सबस्ट्रिंग तापमान - बाश, अजीब

मैं मशीन की व्याख्या प्राप्त करने की कोशिश कर रहा हूं, लेकिन जब मैं निम्नलिखित कमांड का उपयोग करता हूं:

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

यह मुझे उदाहरण के लिए दे +26.0°C मैं चाहता हूं कि आउटपुट 26 हो जाए मैंने कोशिश की कि मैं फेलिंग करूं और इसने मुझे वही परिणाम दिया

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

कृपया सलाह दें, धन्यवाद

उत्तर:

उत्तर № 1 के लिए 1

आपका gsub कमांड होना चाहिए,

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

+ , . regex में विशेष चार हैं। आपको उन लोगों के लेट्रल चरित्र से मेल करने के लिए उस इनवर्टर से बचना चाहिए। और यह भी आप आगे स्लैश delimiters के भीतर regex पैटर्न लिखना चाहिए।

डेमो


उत्तर № 2 के लिए 1

इस gsub समस्या लगती है:

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

पहले तर्क के रूप में एक अमान्य रेगेक्स स्ट्रिंग है।

इसे बदलें:

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