AWK

AWK is a small but powerful programming language that can process and convert text files. AWK is part of every Unix-derived system.

Each AWK program consists of pattern-action statements. The program reads each input line, checks lines against patterns, and runs matching actions. For programs that never read input lines, the entire program can be one BEGIN { ... } block.

  • ''List users who have /bin/ksh as a shell.''
$ awk -F: '$7 == "/bin/ksh" { print $1 }' /etc/passwd

AWK has only three types of variables: they are strings, floating-point numbers, and associative arrays (where every array index is a string). Conversion between strings and numbers is automatic. AWK also has regular expressions, which appear in many AWK programs. There are a few built-in functions, like cos() and sprintf().

  • ''Find average line length.''
$ awk '{ cnt += length($0) } END { print cnt / NR }' /etc/rc

The name "AWK" comes from the initials of Alfred Aho, Peter Weinberger and Brian Kernighan: they invented AWK during the 1970s. A few decades later, Kernighan continues to maintain the reference implementation of AWK.

*awk(1) manual page, short and brief *gawk GNU awk manual *AWK in Wikipedia *AWK Community Portal

Online-Execution

  • ideone.com - gawk, mawk (both are kept up to date)

Todo

Reports:Tasks_not_implemented_in_AWK

Tasks