我想用 bash 做一些多行匹配=~
#!/bin/bash
str='foo = 1 2 3
bar = what about 42?
boo = more words
'
re='bar = (.*)'
if [[ "$str" =~ $re ]]; then
echo "${BASH_REMATCH[1]}"
else
echo no match
fi
快到了,但如果我使用^or $,它将不匹配,如果我不使用它们,.也会吃换行符。
编辑:
抱歉,后面的值=可能是多字值。