| Zweck: | Einen Ausdruck auswerten und das Ergebnis auf STDOUT ausgeben |
| Format: | EXPR string : regex Regulärer Ausdruck - Übereinstimmung von regex mit string |
| EXPR match string regex Dasselbe wie string : regex |
| EXPR substr string pos len Teilzeichenfolge von string, pos beginnt bei 1 |
| EXPR index string chars Index in der Zeichenkette (erstes Zeichen ist 1), in der irgendetwas in Zeichen gefunden wird, oder 0, wenn nichts passt |
| EXPR length string Länge der Zeichenkette |
| arg1 [operator] arg2... Dies kann ein beliebiger arithmetischer Ausdruck sein, der von @EVAL unterstützt wird, oder ein bedingter Ausdruck, der von IF /IFF unterstützt wird. |
Siehe auch: Bedingte Ausdrücke, IFF, @IF.
Verwendung:
EXPR wertet Ganzzahl- oder Zeichenkettenausdrücke aus, einschließlich der regulären Ausdrücke für den Mustervergleich. EXPR expandiert Variablen in der Befehlszeile, bevor es den Ausdruck auswertet, es sei denn, sie sind in Anführungszeichen gesetzt.
Wenn Sie Sonderzeichen (z.B. < > & |) in der Zeile haben, müssen Sie entweder den gesamten Ausdruck in doppelte Anführungszeichen setzen (EXPR entfernt sie vor der Auswertung des Ausdrucks) oder sie in Anführungszeichen setzen.
Die Übereinstimmung des regulären Ausdrucks ist immer verankert (d.h. es gibt ein implizites führendes ^). Enthält der reguläre Ausdruck (...) und stimmt er mit mindestens einem Teil der Zeichenkette überein , gibt EXPR diesen Teil der Zeichenkette zurück ; gibt es keine Übereinstimmung, ergibt EXPR0. Enthält der reguläre Ausdruck kein (..), ist das Ergebnis die Anzahl der übereinstimmenden Zeichen. MATCH führt die gleiche Operation aus wie der Doppelpunkt-Operator.
Beispiele:
expr text : tex
3
expr text : (.*)
text
expr 5 + 3 +1
9
expr length hello
5
expr index hello l
3
expr substr hello 2 3
ell