Copyright (C) 2000-2012 |
GNU Info (sh-utils.info)String expressionsString expressions ------------------ `expr' supports pattern matching and other string operators. These have lower precedence than both the numeric and relational operators (in the next sections). `STRING : REGEX' Perform pattern matching. The arguments are converted to strings and the second is considered to be a (basic, a la GNU `grep') regular expression, with a `^' implicitly prepended. The first argument is then matched against this regular expression. If the match succeeds and REGEX uses `\(' and `\)', the `:' expression returns the part of STRING that matched the subexpression; otherwise, it returns the number of characters matched. If the match fails, the `:' operator returns the null string if `\(' and `\)' are used in REGEX, otherwise 0. Only the first `\( ... \)' pair is relevant to the return value; additional pairs are meaningful only for grouping the regular expression operators. In the regular expression, `\+', `\?', and `\|' are operators which respectively match one or more, zero or one, or separate alternatives. SunOS and other `expr''s treat these as regular characters. (POSIX allows either behavior.) Note: Regular Expression Library, for details of regular expression syntax. Some examples are in Note: Examples of expr. `match STRING REGEX' An alternative way to do pattern matching. This is the same as `STRING : REGEX'. `substr STRING POSITION LENGTH' Returns the substring of STRING beginning at POSITION with length at most LENGTH. If either POSITION or LENGTH is negative, zero, or non-numeric, returns the null string. `index STRING CHARSET' Returns the first position in STRING where the first character in CHARSET was found. If no character in CHARSET is found in STRING, return 0. `length STRING' Returns the length of STRING. `quote TOKEN' Interpret TOKEN as a string, even if it is a keyword like MATCH or an operator like `/'. This makes it possible to test `expr length quote "$x"' or `expr quote "$x" : '.*/\(.\)'' and have it do the right thing even if the value of $X happens to be (for example) `/' or `index'. This operator is a GNU extension. It is disabled when the environment variable `POSIXLY_CORRECT' is set. To make `expr' interpret keywords as strings, you must use the `quote' operator. automatically generated by info2www version 1.2.2.9 |