Precedence in regular expressions
In regular expressions, the '|'
alternation operator has the lowest precedence, then concatenation, followed by the +
, *
, and ?
repetition operations as well as brackets, '{'
and '}'
. As in arithmetic expressions, operators of higher precedence are done before lower ones. Also, parentheses can change how operators are grouped. Due to these conventions, parentheses are often omitted, as follows:
$ awk '/Jane|Emily/' emp.dat is same as $ awk '/(Jane)|(Emily)/' emp.dat
The output on execution of the preceding code is as follows:
Jane Kaur 9837432312 [email protected] F hr 1800 Emily Kaur 8826175812 [email protected] F Ops 2100
In POSIX, AWK, and GAWK, the '*'
, '+'
, and '?'
operators stand for themselves when there is nothing in the regular expression that precedes them. For example, /+/
matches a literal plus sign:
$ echo -e "This is new line one + one is two posix regular expression" | awk '/+/{ print }'
The output on execution of the...