The awk language has evolved over the years. Full details are provided in Language History. The language described in this Web page is often referred to as “new awk” (nawk).
Because of this, there are systems with multiple versions of awk. Some systems have an awk utility that implements the original version of the awk language and a nawk utility for the new version. Others have an oawk version for the “old awk” language and plain awk for the new one. Still others only have one version, which is usually the new one.1
All in all, this makes it difficult for you to know which version of awk you should run when writing your programs. The best advice we can give here is to check your local documentation. Look for awk, oawk, and nawk, as well as for gawk. It is likely that you already have some version of new awk on your system, which is what you should use when running your programs. (Of course, if you're reading this Web page, chances are good that you have gawk!)
Throughout this Web page, whenever we refer to a language feature that should be available in any complete implementation of POSIX awk, we simply use the term awk. When referring to a feature that is specific to the GNU implementation, we use the term gawk.
 Often, these systems use gawk for their awk implementation!