변수에서 마지막으로 나타나는 두 문자(첫 번째 문자는 C, 두 번째 문자는 A 또는 B일 수 있음)를 감지하고 일부 제거 및 if 조건을 적용합니다.

변수에서 마지막으로 나타나는 두 문자(첫 번째 문자는 C, 두 번째 문자는 A 또는 B일 수 있음)를 감지하고 일부 제거 및 if 조건을 적용합니다.

다음 변수 문자 = "1234, MR45, MB46, 1234"를 고려하십시오. M[B 또는 R]의 마지막 발생을 감지하는 명령이 필요합니다. 여기서 M은 고정되고 두 번째 문자는 B 또는 R일 수 있으며 삭제합니다. 출력 출력 = MB46, 1234" 문자 변수에 MB 또는 MR 단어가 없으면 오류를 인쇄하는 명령도 필요합니다.

답변1

Bash솔루션(정규식 일치):

letters="1234, MR45, MB46, 1234"

if [[ "$letters" =~ .*(M[BR].*) ]]; then 
    echo "${BASH_REMATCH[1]}"   # MB46, 1234
else 
    echo "MB or MR word not found!"
fi

단순화된 단축 대안으로 다음 GNU는grep적용 가능한 방법:

grep -Po '.*\KM[BR].*' <<<"$letters" || echo "MB or MR word not found"

관련 정보