Bash 그룹 일치

Bash 그룹 일치

저는 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입니다.

관련 정보