私はbash 3.1.17(1)リリースと以下のスクリプトを使用しています。入力のグループ一致(例:4fwk2_dev 2fwk5_dev)は表示されません。
echo $FWK
FWK_REGEX="/(\d{1,3})fwk(\d)_dev/"
if [[ $FWK =~ $FW_REGEX ]]; then
echo ${BASH_REMATCH[0]}
fi
出力
4fwk2_dev 2fwk5_dev
4にマッチしたいし、追加すると2もマッチしますecho ${BASH_REMATCH[1]}
。g
正規表現に(global)を追加すると、およびを処理できること4fwk2_dev
を願っています2fwk5_dev
。
答え1
これはうまくいくようです:
echo $FWK
FWK_REGEX="([0-9]{1,3})fwk([0-9])_dev"
if [[ $FWK =~ $FWK_REGEX ]]; then
echo ${BASH_REMATCH[0]}
fi
正規表現を変更し、変数名のタイプミスを修正しました。
しかし、Bash 4.3.42(1) があるので YMMV です。