An Example with Two Rules
=========================
The `awk' utility reads the input files one line at a time. For
each line, `awk' tries the patterns of each of the rules. If several
patterns match, then several actions are run in the order in which they
appear in the `awk' program. If no patterns match, then no actions are
run.
After processing all the rules that match the line (and perhaps
there are none), `awk' reads the next line. (However, Note:The `next'
Statement., and also Note:Using `gawk''s `nextfile'
Statement.). This continues until the end of the
file is reached. For example, the following `awk' program contains two
rules:
/12/ { print $0 }
/21/ { print $0 }
The first rule has the string `12' as the pattern and `print $0' as the
action. The second rule has the string `21' as the pattern and also
has `print $0' as the action. Each rule's action is enclosed in its
own pair of braces.
This program prints every line that contains the string `12' _or_
the string `21'. If a line contains both strings, it is printed twice,
once by each rule.
This is what happens if we run this program on our two sample data
files, `BBS-list' and `inventory-shipped', as shown here:
$ awk '/12/ { print $0 }
> /21/ { print $0 }' BBS-list inventory-shipped
-| aardvark 555-5553 1200/300 B
-| alpo-net 555-3412 2400/1200/300 A
-| barfly 555-7685 1200/300 A
-| bites 555-1675 2400/1200/300 A
-| core 555-2912 1200/300 C
-| fooey 555-1234 2400/1200/300 B
-| foot 555-6699 1200/300 B
-| macfoo 555-6480 1200/300 A
-| sdace 555-3430 2400/1200/300 A
-| sabafoo 555-2127 1200/300 C
-| sabafoo 555-2127 1200/300 C
-| Jan 21 36 64 620
-| Apr 21 70 74 514
Note how the line beginning with `sabafoo' in `BBS-list' was printed
twice, once for each rule.