Wie erhält man mit „expr match“ ein durch Doppelpunkte getrenntes Schlüssel-Wert-Paar?

Wie erhält man mit „expr match“ ein durch Doppelpunkte getrenntes Schlüssel-Wert-Paar?

Gegeben: würde ich die Ausgabe myvar="present-value: 1"erwarten . Stattdessen wird jedoch leer ausgegeben und mit einem Statuscode ungleich Null beendet, der keine Übereinstimmung anzeigt.expr match "$myvar" '\([0-9]\)'1

Wie kann ich es passend machen?

Antwort1

Das hat bei mir funktioniert

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

Ausgabe:

4

Antwort2

Laut experManpage matchist dies für einen anchored pattern match of REGEXP in STRING. Der REGEX ist an beiden Enden von STRING verankert, er kann also nicht einfach mit einer Teilzeichenfolge übereinstimmen.

verwandte Informationen