¿Cómo obtener `expr match` para extraer un par clave-valor delimitado por dos puntos?

¿Cómo obtener `expr match` para extraer un par clave-valor delimitado por dos puntos?

Dado: myvar="present-value: 1", esperaría expr match "$myvar" '\([0-9]\)'generar 1. Sin embargo, en su lugar, sale en blanco y sale con un código de estado distinto de cero que indica que no hay coincidencia.

¿Cómo puedo hacer que coincida?

Respuesta1

Esto funcionó para mí

myvar="present value: 4"
expr match "$myvar" '.*\([0-9]\)'

Producción:

4

Respuesta2

Según la experpágina de manual, matches para un archivo anchored pattern match of REGEXP in STRING. REGEX está anclado a ambos extremos de STRING, por lo que no puede coincidir simplemente con una subcadena.

información relacionada