de uma variável detecta a última ocorrência de duas letras (a primeira letra é C e a segunda letra pode ser A ou B) e aplica alguma condição de exclusão e se

0

Considere abaixo a variável letras="1234, MR45, MB46, 1234" Precisa de um comando para detectar a última ocorrência de M [B ou R], onde M é fixo e a segunda letra pode ser B ou R e excluir tudo antes disso Saída esperada saída="MB46, 1234" Também precisa se comando para imprimir erro se letras variável não tiver MB ou palavra MR

    
por user8554534 15.10.2017 / 20:20

1 resposta

0
Solução

Bash (correspondência regex):

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

Como uma alternativa abreviada simplificada, a seguinte abordagem grep do GNU pode ser usada:

grep -Po '.*\KM[BR].*' <<<"$letters" || echo "MB or MR word not found"
    
por 15.10.2017 / 20:28