COHERENT manpages
This page displays the COHERENT manpage for awk [Pattern-scanning language].
List of available manpages
Index
awk -- Command
Pattern-scanning language
awk [ POSIX or GNU style options ] -f program-file [ -- ] file ...
awk [ POSIX or GNU style options ] [ -- ] program-text file ...
awk is a general-purpose language designed for processing input data. Its
features allow you to write programs that scan for patterns, produce
reports, and filter relevant information from a mass of input data. It
acts upon the contents of each program-file, or the standard input if no -
program-file is specified.
You can specify the program either as an argument (usually enclosed in
quotation marks to prevent interpretation by the shell sh) or in the form -
f program-file. If no -f option appears, the first non-option argument is
the awk program.
awk views its input as a sequence of records, each consisting of zero or
more fields. By default, newlines separate records and white space (spaces
or tabs) separates fields. The option -Fc changes the input field
separator characters to the characters in the string c. An awk program can
also change the field and record separators. The program can access the
values of each field and the entire record through built-in variables.
For details on the construction of awk programs, consult the tutorial to
awk that appears in this manual. Briefly, an awk program consists of one
or more lines, each containing a pattern or an action, or both. A pattern
determines whether awk performs the associated action. It may consist of
regular expressions, line ranges, boolean combinations of variables, and
beginning and end of input-text predicates. If no pattern is specified,
awk executes the action (the pattern matches by default).
An action is enclosed in braces. The syntax of actions is C-like, and
consists of simple and compound statements constructed from constants
(numbers, strings), input fields, built-in and user-defined variables, and
built-in functions. If an action is missing, awk prints the entire input
record (line).
Unlike lex or yacc, awk does not compile programs into an executable image,
but interprets them directly. Thus, awk is ideal for quickly-implemented,
one-shot efforts.
Examples
The following examples illustrate the economy of expression of awk
programs.
The first example reads the standad input, and echoes all lines containing
the string ``COHERENT'':
awk '/COHERENT/'
To exit, type <ctrl-D>/
The built-in variable NR is the number of the current input record. The
next example reads the standard input, and prints the number of records you
typed after you exit (again, by typing <ctrl-D>):
awk 'END { print NR }'
The built-in variable $3 gives the value of the third field of the current
record. The last example sums the third field from each record you type on
the standard input, and prints the total when you exit:
awk '{ sum += $3 }
END { print sum }'
See Also
commands,
gawk,
lex,
sed,
yacc
Introduction to the awk Language, tutorial.
Notes
Beginning with release 4.2.14 of COHERENT, awk has been replaced by gawk,
the GNU implementation of this language. For details on this
implementation of the awk language, see the Lexicon entry for gawk.