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
ほぼそこにありますが、^またはを使用$すると一致せず、使用しない場合.は改行も食べます。
編集:
申し訳ありませんが、後の値=はマルチワード値である可能性があります。