UNIX in a Nutshell: System V Edition

UNIX in a Nutshell: System V EditionSearch this book
Previous: 11.2 Conceptual OverviewChapter 11
The Awk Scripting Language
Next: 11.4 Awk System Variables
 

11.3 Patterns and Procedures

Awk scripts consist of patterns and procedures:

pattern {procedure}

Both are optional. If pattern is missing, {procedure} is applied to all lines. If {procedure} is missing, the matched line is printed.

11.3.1 Patterns

A pattern can be any of the following:

/regular expression/

relational expression

pattern-matching expression

BEGIN

END

Except for BEGIN and END, patterns can be combined with the Boolean operators || (or), && (and), and ! (not). A range of lines can also be specified using comma-separated patterns:

pattern,pattern

11.3.2 Procedures

Procedures consist of one or more commands, functions, or variable assignments, separated by newlines or semicolons, and contained within curly braces. Commands fall into four groups:

11.3.3 Simple Pattern-Procedure Examples

  1. Print first field of each line:

    { print $1 }

  2. Print all lines that contain pattern:

    /pattern/

  3. Print first field of lines that contain pattern:

    /pattern/{ print $1 }

  4. Select records containing more than two fields:

    NF > 2

  5. Interpret input records as a group of lines up to a blank line:

    BEGIN { FS = "\n"; RS = "" }

  6. Print fields 2 and 3 in switched order, but only on lines whose first field matches the string "URGENT":

    $1 ~ /URGENT/ { print $3, $2 }

  7. Count and print the number of pattern found:

    /pattern/ { ++x }
    END { print x }

  8. Add numbers in second column and print total:

    {total += $2 }; 
    END { print "column total is", total}

  9. Print lines that contain less than 20 characters:

    length < 20

  10. Print each line that begins with Name: and that contains exactly seven fields:

    NF == 7 && /^Name:/

  11. Reverse the order of fields:

    { for (i = NF; i >= 1; i-) print $i }


Previous: 11.2 Conceptual OverviewUNIX in a Nutshell: System V EditionNext: 11.4 Awk System Variables
11.2 Conceptual OverviewBook Index11.4 Awk System Variables

The UNIX CD Bookshelf NavigationThe UNIX CD BookshelfUNIX Power ToolsUNIX in a NutshellLearning the vi Editorsed & awkLearning the Korn ShellLearning the UNIX Operating System