Go forward to Expression Patterns.
Go backward to Comparison Patterns.
Go up to Patterns.
Boolean Operators and Patterns
==============================
A "boolean pattern" is an expression which combines other patterns
using the "boolean operators" "or" (`||'), "and" (`&&'), and "not"
(`!'). Whether the boolean pattern matches an input record depends on
whether its subpatterns match.
For example, the following command prints all records in the input
file `BBS-list' that contain both `2400' and `foo'.
awk '/2400/ && /foo/' BBS-list
The following command prints all records in the input file
`BBS-list' that contain *either* `2400' or `foo', or both.
awk '/2400/ || /foo/' BBS-list
The following command prints all records in the input file
`BBS-list' that do *not* contain the string `foo'.
awk '! /foo/' BBS-list
Note that boolean patterns are a special case of expression patterns
(see Expressions as Patterns: Expression Patterns.); they are
expressions that use the boolean operators. See Boolean Expressions: Boolean Ops, for complete information on the boolean operators.
The subpatterns of a boolean pattern can be constant regular
expressions, comparisons, or any other `awk' expressions. Range
patterns are not expressions, so they cannot appear inside boolean
patterns. Likewise, the special patterns `BEGIN' and `END', which
never match any input record, are not expressions and cannot appear
inside boolean patterns.