我有一个变量(OUTPUT),其中包含
"Using pin #4 Data (40): 0x23 0x0 0x18 0x0 0x3b Temp = 24 *C, Hum = 35 %".
温度和 Hum 都可以为0到100。
在 BASH 中,我如何找到
string "Temp = " and "Hum = "
,然后将相关的数字(“24”和“35”)放置在它们各自的变量TEMP和HUM中。OUTPUT变量的长度可以更改,因此我无法根据其在字符串中的位置找到TEMP和HUM变量。
太感谢了
最佳答案
$ OUTPUT="Using pin #4 Data (40): 0x23 0x0 0x18 0x0 0x3b Temp = 24 *C, Hum = 35 %"
$ [[ "$OUTPUT" =~ Temp\ =\ ([0-9]*) ]] && TEMP=${BASH_REMATCH[1]}
$ [[ "$OUTPUT" =~ Hum\ =\ ([0-9]*) ]] && HUM=${BASH_REMATCH[1]}
$ echo $TEMP
24
$ echo $HUM
35
关于linux - 在字符串中查找模式,然后在变量后的字符串后放置字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19263735/