Go to the next section.
If you are like many computer users, you frequently would 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
.
The 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 3.1 and later
version of awk
. All properly written
awk
programs should work with gawk
. So we usually don't
distinguish between gawk
and other awk
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 ls
. Using awk
you can:
awk
and gawk
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 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 behaviour in some of the "dark corners" of the language.
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
.
Many people need to be thanked for their assistance in producing this
manual. Jay Fenlason contributed many ideas and sample programs. Richard
Mlynarik and Robert Chassell gave helpful comments on 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.
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 several points about the language.
Go to the next section.