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