The
expr (45.28)
command does a lot of different things with expressions.
One expression it handles has three arguments: first, a string; second,
a colon (:
); third, a
regular expression (26.4).
The string and regular expression usually need quotes.
expr can count the number of characters that match the
regular expression.
The regular expression is automatically anchored to the
start of the string you're matching, as if you'd typed a ^
at the start of it in grep, sed, and so on.
expr is usually run with
backquotes (9.16)
to save its output:
$part="resistor 321-1234-00" name="Ellen Smith"
... $expr "$part" : '[a-z ]*[0-9]'
...character position of first number 10 $len=`expr "$name" : '[a-zA-Z]*'`
$echo first name has $len characters
first name has 5 characters
When a regular expression matches some character(s), expr returns a zero ("true") exit status (44.7). If you want a true/false test like this, throw away the number that expr prints and test its exit status:
/dev/null | $ |
---|
-