我有一个变量(OUTPUT),其中包含
"Using pin #4 Data (40): 0x23 0x0 0x18 0x0 0x3b Temp = 24 *C, Hum = 35 %".
Temp 和 Hum 都可以是0到100。
在 BASH 中如何找到string "Temp = " and "Hum = "
,然后将相关数字(“24”和“35”)放在各自的变量TEMP和HUM中。
OUTPUT变量的长度可以改变,因此我无法根据它们在字符串中的位置找到TEMP和HUM变量。
万分感谢
答案 0 :(得分:3)
$ 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
答案 1 :(得分:0)
整洁的替代解决方案:
grep -oE " [0-9]+ " <<< $OUTPUT