print
When you use the print
statement to print numeric values,
awk
internally converts the number to a string of characters,
and prints that string. awk
uses the sprintf
function
to do this conversion
(see section Built-in Functions for String Manipulation).
For now, it suffices to say that the sprintf
function accepts a format specification that tells it how to format
numbers (or strings), and that there are a number of different ways in which
numbers can be formatted. The different format specifications are discussed
more fully in
section Format-Control Letters.
The built-in variable OFMT
contains the default format specification
that print
uses with sprintf
when it wants to convert a
number to a string for printing.
The default value of OFMT
is "%.6g"
.
By supplying different format specifications
as the value of OFMT
, you can change how print
will print
your numbers. As a brief example:
$ awk 'BEGIN { > OFMT = "%.0f" # print numbers as integers (rounds) > print 17.23 }' -| 17
According to the POSIX standard, awk
's behavior will be undefined
if OFMT
contains anything but a floating point conversion specification
(d.c.).
Go to the first, previous, next, last section, table of contents.