Node:This Manual, Next:Conventions, Previous:Names, Up:Preface
The term awk
refers to a particular program as well as to the language you
use to tell this program what to do. When we need to be careful, we call
the language "the awk
language,"
and the program "the awk
utility."
This Web page explains
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.
Primarily, this Web page explains the features of awk
,
as defined in the POSIX standard. It does so in the context of the
gawk
implementation. While doing so, it also
attempts to describe important differences between gawk
and other awk
implementations.1
Finally, any gawk
features that are not in
the POSIX standard for awk
are noted.
This Web page has the difficult task of being both a tutorial and a 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 online Info version of the document.
There are subsections labelled as Advanced Notes scattered throughout the Web page. They add a more complete explanation of points that are relevant, but not likely to be of interest on first reading. All appear in the index, under the heading "advanced features."
Most of the time, the examples use complete awk
programs.
In some of the more advanced sections, only the part of the awk
program that illustrates the concept currently being described is shown.
While this Web page is aimed principally at people who have not been
exposed
to awk
, there is a lot of information here that even the awk
expert should find useful. In particular, the description of POSIX
awk
and the example programs in
A Library of awk
Functions, and in
Practical awk
Programs,
should be of interest.
Getting Started with awk
,
provides the essentials you need to know to begin using awk
.
Regular Expressions,
introduces regular expressions in general, and in particular the flavors
supported by POSIX awk
and gawk
.
Reading Input Files,
describes how awk
reads your data.
It introduces the concepts of records and fields, as well
as the getline
command.
I/O redirection is first described here.
Printing Output,
describes how awk
programs can produce output with
print
and printf
.
Expressions,
describes expressions, which are the basic building blocks
for getting most things done in a program.
Patterns Actions and Variables,
describes how to write patterns for matching records, actions for
doing something when a record is matched, and the built-in variables
awk
and gawk
use.
Arrays in awk
,
covers awk
's one-and-only data structure: associative arrays.
Deleting array elements and whole arrays is also described, as well as
sorting arrays in gawk
.
Functions,
describes the built-in functions awk
and
gawk
provide, as well as how to define
your own functions.
Internationalization with gawk
,
describes special features in gawk
for translating program
messages into different languages at runtime.
Advanced Features of gawk
,
describes a number of gawk
-specific advanced features.
Of particular note
are the abilities to have two-way communications with another process,
perform TCP/IP networking, and
profile your awk
programs.
Running awk
and gawk
,
describes how to run gawk
, the meaning of its
command-line options, and how it finds awk
program source files.
A Library of awk
Functions, and
Practical awk
Programs,
provide many sample awk
programs.
Reading them allows you to see awk
solving real problems.
The Evolution of the awk
Language,
describes how the awk
language has evolved since
first release to present. It also describes how gawk
has acquired features over time.
Installing gawk
,
describes how to get gawk
, how to compile it
under Unix, and how to compile and use it on different
non-Unix systems. It also describes how to report bugs
in gawk
and where to get three other freely
available implementations of awk
.
Implementation Notes,
describes how to disable gawk
's extensions, as
well as how to contribute new code to gawk
,
how to write extension libraries, and some possible
future directions for gawk
development.
Basic Programming Concepts,
provides some very cursory background material for those who
are completely unfamiliar with computer programming.
Also centralized there is a discussion of some of the issues
surrounding floating-point numbers.
The
Glossary,
defines most, if not all, the significant terms used
throughout the book.
If you find terms that you aren't familiar with, try looking them up here.
GNU General Public License, and
GNU Free Documentation License,
present the licenses that cover the gawk
source code
and this Web page, respectively.