History
of AWK
The
name awk comes
from the initials of its designers: Alfred V. Aho, Peter J.
Weinberger, and Brian W. Kernighan. The original version of
awk was written in 1977. In 1985 a new versionmade the programming
language more powerful, introducing user-de ned functions, multiple
inputstreams, and computed regular expressions. This new version
became generally available with System V Release 3.1. The version in
System V Release 4 added some new features and also cleaned up the
behavior in some of the \dark corners" of the language. The
speci cation for awk in the posix Command Language and Utilities
standard further clari ed the language.
We
need to thank many people for their assistance in producing this
manual. Jay Fenlason contributed many ideas and sample programs.
Richard Mlynarik and Robert J. Chassell gave helpful comments on
early drafts of this manual. The paper A Supplemental Document for
awk by John W. Pierce of the Chemistry Department at UC San Diego,
pinpointed several issues relevant both to awk implementation and to
this manual, that would otherwise have escaped us. David Trueman, Pat
Rankin, and Michal Jaegermann also contributed sections of the
manual.
The
following people provided many helpful comments on this edition of
the manual: Rick Adams, Michael Brennan, Rich Burridge, Diane Close,
Christopher (\Topher") Eliot, Michael Lijewski, Pat Rankin,
Miriam Robbins, and Michal Jaegermann. Robert J. Chassell provided
much valuable advice on the use of Texinfo.
Little
more About AWK :
The
term awk refers
to a particular program, and to the language you use to tell this
program what to do. When we need to be careful, we call the
program \the awk utility" and the language \the awk language."
The term gawk refers to a version of awk developed as part the GNU
project. The purpose of this manual is to explain both the awk
language and how to run the awk utility. The term awk program refers
to a program written by you in the awk programming language. Most of
the time complete awk programs are used as examples, but in some of
the more advanced sections, only the part of the awk program that
illustrates the concept being described is shown.
Data
Files for the Examples :
Many
of the examples in this manual take their input from two sample data
les. The rst, called `BBS-list', represents a list of
computer bulletin board systems together with information about those
systems. The second data le, called `inventory-shipped', contains
information about shipments on a monthly basis. Each line of these
les is one record.
In
the le `BBS-list', each record contains the name of a computer
bulletin board, its phone number, the board's baud rate, and a code
for the number of hours it is operational. An `A' in the last column
means the board operates 24 hours a day. A `B' in the last column
means the board
operates
evening and weekend hours, only. A `C' means the board operates only
on weekends.
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
camelot
555-0542 300 C
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
The
second data le, called `inventory-shipped', represents information
about shipments during the year. Each record contains the month of
the year, the number of green crates shipped, the number of red boxes
shipped, the number of orange bags shipped, and the number of blue
packages shipped, respectively. There are 16 entries, covering the 12
months of one year and 4 months of the next year.
Jan
13 25 15 115
Feb
15 32 24 226
Mar
15 24 34 228
Apr
31 52 63 420
May
16 34 29 208
Jun
31 42 75 492
Jul
24 34 67 436
Aug
15 34 47 316
Sep
13 55 37 277
Oct
29 54 68 525
Nov
20 87 82 577
Dec
17 35 61 401
Jan
21 36 64 620
Feb
26 58 80 652
Mar
24 75 70 495
Apr
21 70 74 514