我有一个变量(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/

10-16 19:10