awk language has evolved over time. The first release
was with V7 Unix, circa 1978. In 1987, for System V Release 3.1,
major additions, including user-defined functions, were made to the language.
Additional changes were made for System V Release 4, in 1989.
Since then, further minor changes have happened under the auspices of the
- Brian Kernighan’s
awk provides a small number of extensions
that are implemented in common with other versions of
gawk provides a large number of extensions over POSIX
They can be disabled with either the --traditional or --posix
The interaction of POSIX locales and regexp matching in
gawk has been confusing over
the years. Today,
gawk implements Rational Range Interpretation, where
ranges of the form ‘[a-z]’ match only the characters numerically between
‘a’ through ‘z’ in the machine’s native character set. Usually this is ASCII,
but it can be EBCDIC on IBM S/390 systems.
- Many people have contributed to
gawk development over the years.
We hope that the list provided in this chapter is complete and gives
the appropriate credit where credit is due.