Simple Pattern-Procedure Examples

Print first field of each line:

{ print $1 }

Print all lines that contain pattern:

/pattern/

Print first field of lines that contain pattern:

/pattern/ { print $1 }

Select records containing more than two fields:

NF > 2

Interpret input records as a group of lines up to a blank line. Each line is a single field:

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

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

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

Count and print the number of pattern found:

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

Add numbers in second column and print the total:

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

Print lines that contain less than 20 characters:

length($0) < 20

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

NF =  = 7 && /^Name:/

Print the fields of each record in reverse order, one per line:

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

Get Linux in a Nutshell, 6th Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.