(gawk.info.gz) Control Letters
Info Catalog
(gawk.info.gz) Basic Printf
(gawk.info.gz) Printf
(gawk.info.gz) Format Modifiers
4.5.2 Format-Control Letters
----------------------------
A format specifier starts with the character `%' and ends with a
"format-control letter"--it tells the `printf' statement how to output
one item. The format-control letter specifies what _kind_ of value to
print. The rest of the format specifier is made up of optional
"modifiers" that control _how_ to print the value, such as the field
width. Here is a list of the format-control letters:
`%c'
This prints a number as an ASCII character; thus, `printf "%c",
65' outputs the letter `A'. (The output for a string value is the
first character of the string.)
NOTE: The `%c' format does _not_ handle values outside the
range 0-255. On most systems, values from 0-127 are within
the range of ASCII and will yield an ASCII character. Values
in the range 128-255 may format as characters in some
extended character set, or they may not. System 390 (IBM
architecture mainframe) systems use 8-bit characters, and
thus values from 0-255 yield the corresponding EBCDIC
character. Any value above 255 is treated as modulo 255;
i.e., the lowest eight bits of the value are used. The
locale and character set are always ignored.
`%d, %i'
These are equivalent; they both print a decimal integer. (The
`%i' specification is for compatibility with ISO C.)
`%e, %E'
These print a number in scientific (exponential) notation; for
example:
printf "%4.3e\n", 1950
prints `1.950e+03', with a total of four significant figures,
three of which follow the decimal point. (The `4.3' represents
two modifiers, discussed in the next node.) `%E' uses `E' instead
of `e' in the output.
`%f'
This prints a number in floating-point notation. For example:
printf "%4.3f", 1950
prints `1950.000', with a total of four significant figures, three
of which follow the decimal point. (The `4.3' represents two
modifiers, discussed in the next node.)
On systems supporting IEEE 754 floating point format, values
representing negative infinity are formatted as `-inf' or
`-infinity', and positive infinity as `inf' and `infinity'. The
special "not a number" value formats as `-nan' or `nan'.
`%F'
Like `%f' but the infinity and "not a number" values are spelled
using uppercase letters.
The `%F' format is a POSIX extension to ISO C; not all systems
support it. On those that don't, `gawk' uses `%f' instead.
`%g, %G'
These print a number in either scientific notation or in
floating-point notation, whichever uses fewer characters; if the
result is printed in scientific notation, `%G' uses `E' instead of
`e'.
`%o'
This prints an unsigned octal integer.
`%s'
This prints a string.
`%u'
This prints an unsigned decimal integer. (This format is of
marginal use, because all numbers in `awk' are floating-point; it
is provided primarily for compatibility with C.)
`%x, %X'
These print an unsigned hexadecimal integer; `%X' uses the letters
`A' through `F' instead of `a' through `f'.
`%%'
This isn't a format-control letter, but it does have meaning--the
sequence `%%' outputs one `%'; it does not consume an argument and
it ignores any modifiers.
NOTE: When using the integer format-control letters for values
that are outside the range of the widest C integer type, `gawk'
switches to the `%g' format specifier. If `--lint' is provided on
the command line ( Options), `gawk' warns about this.
Other versions of `awk' may print invalid values or do something
else entirely. (d.c.)
Info Catalog
(gawk.info.gz) Basic Printf
(gawk.info.gz) Printf
(gawk.info.gz) Format Modifiers
automatically generated by
info2html