AWK Tutorial

COINS.txt

gold     1      1986  USA                            American Eagle
gold     1      1908  Austria-Hungary     Franz Josef 100 Korona
silver  10     1981  USA                           ingot
gold     1      1984  Switzerland             ingot
gold     1      1979  RSA                           Krugerrand
gold     0.5   1981  RSA                           Krugerrand
gold     0.1   1986  PRC                           Panda
silver   1      1986  USA                           Liberty dollar
gold     0.25 1986  USA                          Liberty 5-dollar piece
silver   0.5   1986  USA                          Liberty 50-cent piece
silver   1      1987  USA                          Constitution dollar
gold     0.25 1987  USA                         Constitution 5-dollar piece
gold     1       1988  Canada                   Maple Leaf

 

List all the gold pieces:  

awk ‘/gold/ {print $5,$6,$7,$8}’ coins.txt

List all the coins that were minted before 1980.

awk ‘{if ($3 < 1980) print $3, "    ",$5,$6,$7,$8}’ coins.txt

1908      Franz Josef 100 Korona
1979      Krugerrand

 

List number of lines in coins.txt

awk ‘END {print NR,"coins"}’ coins.txt

 

awk ‘/gold/ {ounces += $2} END {print "value = $" 425*ounces}’  coins.txt

 

Working with Patterns

emp_names
46012   DULANEY     EVAN        MOBILE   AL
46013   DURHAM      JEFF        MOBILE   AL
46015   STEEN       BILL        MOBILE   AL
46017   FELDMAN     EVAN        MOBILE   AL
46018   SWIM        STEVE       UNKNOWN  AL
46019   BOGUE       ROBERT      PHOENIX  AR
46021   JUNE        MICAH       PHOENIX  AR
46022   KANE        SHERYL      UNKNOWN  AR
46024   WOOD        WILLIAM     MUNCIE   IN
46026   FERGUS      SARAH       MUNCIE   IN
46027   BUCK        SARAH       MUNCIE   IN
46029   TUTTLE      BOB         MUNCIE   IN
Displaying lines having pattern AL in emp_names file.
awk '/AL/ {print $3,$2}' emp_names
EVAN DULANEY
JEFF DURHAM
BILL STEEN
EVAN FELDMAN
STEVE SWIM
awk '$5 ˜ /AR/' emp_names
46019   BOGUE       ROBERT   PHOENIX   AR
46021   JUNE        MICAH    PHOENIX   AR
46022   KANE        SHERYL   UNKNOWN   AR
 
cat emp_names
46012:DULANEY:EVAN:MOBILE:AL
46013:DURHAM:JEFF:MOBILE:AL
46015:STEEN:BILL:MOBILE:AL
46017:FELDMAN:EVAN:MOBILE:AL
46018:SWIM:STEVE:UNKNOWN:AL
46019:BOGUE:ROBERT:PHOENIX:AR
46021:JUNE:MICAH:PHOENIX:AR
46022:KANE:SHERYL:UNKNOWN:AR
46024:WOOD:WILLIAM:MUNCIE:IN
46026:FERGUS:SARAH:MUNCIE:IN
46027:BUCK:SARAH:MUNCIE:IN
46029:TUTTLE:BOB:MUNCIE:IN
awk '{FS=":"}{print $2}' emp_names
awk -F: '{print $2}' emp_names
 
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: