AWK

related topics
{math, number, function}
{system, computer, user}
{work, book, publish}
{language, word, form}
{line, north, south}
{specie, animal, plant}

AWK is a data driven programming language designed for processing text-based data, either in files or data streams. It is an example of a programming language that extensively uses the string datatype, associative arrays (that is, arrays indexed by key strings), and regular expressions.

AWK is one of the early tools to appear in Version 7 Unix and gained popularity as a way to add computational features to a Unix pipeline. A version of the AWK language is a standard feature of nearly every modern Unix-like operating system available today. AWK is mentioned in the Single UNIX Specification as one of the mandatory utilities of a Unix operating system. Besides the Bourne shell, AWK is the only other scripting language available in a standard Unix environment.[1] It is also present amongst the commands required by the Linux Standard Base specification.[2] Implementations of AWK exist as installed software for almost all other operating systems.[citation needed]

AWK was created at Bell Labs in the 1970s,[3] and its name is derived from the family names of its authors — Alfred Aho, Peter Weinberger, and Brian Kernighan. The name is not commonly pronounced as a string of separate letters but rather to sound the same as the name of the bird, auk (which acts as an emblem of the language such as on The AWK Programming Language book cover - the book is often referred to by the abbreviation TAPL). awk, when written in all lowercase letters, refers to the Unix or Plan 9 program that runs other programs written in the AWK programming language.

The power, terseness, and limitations of early AWK programs inspired Larry Wall to write Perl just as a new, more powerful POSIX AWK and gawk (GNU AWK) were being defined. Although AWK and sed were designed to support one-liner programs, even the early Bell Labs users of AWK often wrote well-structured large AWK programs.

AWK is Turing-complete.[4]

Contents

Full article ▸

related documents
Relational database
Busy beaver
Quadratic equation
Exponentiation by squaring
Control flow
General linear group
Multiplication
Imaginary unit
Finite set
Lie algebra
P = NP problem
Dylan (programming language)
Polyomino
Stochastic process
Communication complexity
Riemannian manifold
Semidirect product
Category theory
Multiplication algorithm
Monoid
Exponential function
Interpolation
Support vector machine
Vacuous truth
Operator
Sorting algorithm
Set (mathematics)
Taylor series
Reference counting
Uniform space