Go to the next section.
Copyright (C) 1989, 1991, 1992, 1993 Free Software Foundation, Inc.
This is Edition 0.15 of The GAWK Manual,
for the 2.15 version of the GNU implementation
Published by the Free Software Foundation
675 Massachusetts Avenue
Cambridge, MA 02139 USA
Printed copies are available for $20 each.
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.
Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.
Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation.
If you are like many computer users, you would frequently like to make
changes in various text files wherever certain patterns appear, or
extract data from parts of certain lines while discarding the rest. To
write a program to do this in a language such as C or Pascal is a
time-consuming inconvenience that may take many lines of code. The job
may be easier with
awk utility interprets a special-purpose programming language
that makes it possible to handle simple data-reformatting jobs easily
with just a few lines of code.
The GNU implementation of
awk is called
gawk; it is fully
upward compatible with the System V Release 4 version of
gawk is also upward compatible with the POSIX
(draft) specification of the
awk language. This means that all
awk programs should work with
Thus, we usually don't distinguish between
gawk and other
implementations in this manual.
This manual teaches you what
awk does and how you can use
awk effectively. You should already be familiar with basic
system commands such as
awk you can:
This manual has the difficult task of being both tutorial and reference. If you are a novice, feel free to skip over details that seem too complex. You should also ignore the many cross references; they are for the expert user, and for the on-line Info version of the manual.
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 version made the programming
language more powerful, introducing user-defined functions, multiple input
streams, 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 specification for
awk in the POSIX Command Language
and Utilities standard further clarified the language based on feedback
from both the
gawk designers, and the original
The GNU implementation,
gawk, was written in 1986 by Paul Rubin
and Jay Fenlason, with advice from Richard Stallman. John Woods
contributed parts of the code as well. In 1988 and 1989, David Trueman, with
help from Arnold Robbins, thoroughly reworked
gawk for compatibility
with the newer
awk. Current development (1992) focuses on bug fixes,
performance improvements, and standards compliance.
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.
Finally, we would like to thank Brian Kernighan of Bell Labs for invaluable
assistance during the testing and debugging of
gawk, and for
help in clarifying numerous points about the language.
Go to the next section.