xvi Preface
In addition, gawk pr ovides facilities that make it easy to:
• Extract bits and pieces of data for processing
• Sort data
• Per form simple network communications
This book teaches you about the awk language and how you can use it effectively.
You should already be familiar with basic system commands, such as cat and ls,
*
as well as basic shell facilities, such as input/output (I/O) redir ection and pipes.
Implementations of the awk language are available for many differ ent computing
envir onments. This book, while describing the awk language in general, also
describes the particular implementation of awk called gawk (which stands for
“GNU awk”). gawk runs on a broad range of Unix systems, ranging from 80386
PC-based computers up through large-scale systems, such as Crays. gawk has also
been ported to Mac OS X, MS-DOS, Microsoft Windows (all versions) and OS/2
PCs, Atari and Amiga microcomputers, BeOS, Tandem D20, and VMS.
Histor y of awk and gawk
The name awk comes from the initials of its designers: Alfred V. Aho, Peter J.
Weinberger, and Brian W. Ker nighan. The original version of awk was written in
1977 at AT&T Bell Laboratories. In 1985, a new version made the programming
language more power ful, intr oducing user-defined functions, multiple input
str eams, and computed regular expressions. This new version became widely
available with Unix System V Release 3.1 (SVR3.1). The version in SVR4 added
some new features and cleaned up the behavior in some of the “dark corners” of
the language. The specification for awk in the POSIX Command Language and
Utilities standard further clarified the language. Both the gawk designers and the
original Bell Laboratories awk designers provided feedback for the POSIX specifi-
cation.
Paul Rubin wrote the GNU implementation, gawk, in 1986. Jay Fenlason com-
pleted it, with advice from Richard Stallman. John Woods contributed parts of the
code as well. In 1988 and 1989, David Trueman, with help from me, thoroughly
reworked gawk for compatibility with the newer awk. Circa 1995, I became the
primary maintainer. Curr ent development focuses on bug fixes, perfor mance
impr ovements, standards compliance, and occasionally, new features.
* These commands are available on POSIX-compliant systems, as well as on traditional Unix-based
systems. If you are using some other operating system, you still need to be familiar with the ideas of
I/O redir ection and pipes.
9 October 2001 01:40