GNU Info

Info Node: (gawk.info)Two Rules

(gawk.info)Two Rules


Next: More Complex Prev: Very Simple Up: Getting Started
Enter node , (file) or (file)node

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.


automatically generated by info2www version 1.2.2.9