A standard feature of most Unix-like systems, AWK is a domain-specific, interpretive programming language used for data manipulation, arithmetic operations, and restructuring raw data for generating reports.
Its name comes from the initials of its original designers: Alfred V. Aho, Peter J. Weinberger, and Brian W. Kernighan. The original version was designed in 1977 at AT&T Bell Laboratories. The original AWK interpreter, still available from AT&T, is not used much anymore, largely because it splits a line into a maximum of 99 fields.
In 1985, a new version made the language more powerful, introducing user-defined functions, multiple input streams, and computed regular expressions. This version, known as New AWK (NAWK) was distributed with Unix System V Release 3.1 in 1987 and continues to be maintained by Brian W. Kernighan, one of the original AWK authors. In the early 1990s, the POSIX Command Language and Utilities standard introduced further changes in the language.
AWK is a data-driven scripting language. It is also a pattern-action language. It searches for patterns in a given input and, when a match is found, it performs the corresponding action.
Written by Paul Rubin, Jay Fenlason, and Richard Stallman in 1986, the GNU implementation of AWK is known as GAWK. In 1988 and 1989, it was reworked for compatibility with the NAWK. When invoked with the correct options or environment variables, GAWK is fully compatible with the POSIX specification of the AWK language and with (NAWK), the Unix version of AWK maintained by Kernighan. Properly written AWK programs should work with either GAWK or NAWK.
AWK is used to manage small, personal databases, to generate reports, validate data, produce indexes and perform other document-preparation tasks, and to experiment with algorithms that can later be adapted to other programming languages. In addition, GAWK adds the ability to extract data for processing, sort data, perform network communications, profile and debug AWK programs, and to extend the language with C or C++ functions.
Other AWK interpreters or translators include AWKA, AWKC++, AWK2C, AWKCC, BusyBox, JAWK, LIBMAWK, MAWK, MKSAWK, TAWK, and ZGAWK.
AWK or any of its dialects or implementations are appropriate topics for this category, as are any editors or tools designed to facilitate programming in AWK, as well as AWK tutorials or guides.
 
 
Recommended Resources
AskApache: Awk Tutorial and Introduction
As written by Bruce Barnett, the AWK tutorial is divided into seventy chapters, covering all aspects of the AWK programming language, from reasons to learn the language to its basic structure, and executing an AWK script, through to formatting AWK programs. The tutorial covers standard AWK as well as NAWK and GAWK, and ends with a discussion of the benefits and differences between AWK, NAWK, GAWK, and PERL. Specific information may be found through search.
https://www.askapache.com/linux/awk-tutorial/
Describing the AWK programming language as a multi-purpose software tool that is used mainly as a filter, one that can take action only according to patterns, a profile of the language is featured here, along with an online manual, tutorials, and cheat sheets on the use of the language. Code examples are presented as a learning tool, and links to several representative ways in which the language was used are included, along with links to other AWK resources.
http://www.awklang.org/
Gawk is the GNU implementation of AWK, which is helpful when a user wants to make changes in various text files wherever certain patterns appear or to extract data from parts of certain lines while discarding the rest. The open-source AWK utility interprets a special-purpose programming language that makes it possible to handle simple data-reformatting tasks with just a few lines of code. The package files and source code are available from the GNU Project.
https://www.gnu.org/software/gawk/
RIP Tutorial: Getting Started with Awk
The beginner level tutorial on the AWK programming language offers an overview of the language and its versions, posting links to user guides, manuals, and tutorials about the language, as well as examples and instructions on AWK arrays, built-in functions, built-in variables, fields, patterns, patterns and actions, row manipulation, string manipulation functions, two-file processing, useful one-liners, and variables. Examples and script are put forth.
https://riptutorial.com/awk/
Created for Thompson Automated Software, the Thompson AWK language (TAWK) fills a niche, providing the ease of use of simpler languages but the power and flexibility of more complicated languages. The improvements over the normally interpreted AWK language are discussed, including its benefits, language features, compiler features, and the new TAWK debugger. Typical AWK applications, as reported by its customers, are listed, and comparisons are made with the C language.
http://www.tasoft.com/tawk.html