| PRINTF(1) | General Commands Manual | PRINTF(1) | 
printf —
| printf | format [arguments ...] | 
printf formats and prints its arguments, after the
  first, under control of the format. The
  format is a character string which contains three types
  of objects: plain characters, which are simply copied to standard output,
  character escape sequences which are converted and copied to the standard
  output, and format specifications, each of which causes printing of the next
  successive argument.
The arguments after the first are treated as
    strings if the corresponding format is either b,
    B, c, or
    s; otherwise it is evaluated as a C constant,
    with the following extensions:
The format string is reused as often as necessary to satisfy the arguments. Any extra format specifications are evaluated with zero or the null string.
Character escape sequences are in backslash notation as defined in ANSI X3.159-1989 (“ANSI C89”). The characters and their meanings are as follows:
\e\a\b\f\n\r\t\v\'\"\\\num\xxxEach format specification is introduced by the percent character
    (‘%’). To produce a literal percent
    (‘%’) in the output, write the percent
    character twice: (‘%%’). This is not a
    format conversion. The remainder of the format specification includes, in
    the following order:
##’ character specifying that
          the value should be printed in an “alternative form”.
          For b, c,
          d, and s formats, this
          option has no effect. For the o format the
          precision of the number is increased to force the first character of
          the output string to a zero. For the x
          (X) format, a non-zero result has the string
          ‘0x’
          (‘0X’) prepended to it. For
          e, E,
          f, F,
          g, and G formats, the
          result will always contain a decimal point, even if no digits follow
          the point (normally, a decimal point only appears in the results of
          those formats if a digit follows the decimal point). For
          g and G formats,
          trailing zeros are not removed from the result as they would otherwise
          be.-+ ’+’ overrides a
          ⟨space⟩ if both are used;0-’ overrides a
          ‘0’ if both are used;.’), followed
      by an optional digit string giving a precision which
      specifies the number of digits to appear after the decimal point, for
      e and f formats, or the
      maximum number of characters to be printed from a string
      (b, B, and
      s formats); if the digit string is missing, the
      precision is treated as zero;diouxXfFeEgGaAbBcs).A field width or precision may be
    ‘*’ instead of a digit string. In this
    case an argument supplies the field width or
    precision.
The format characters and their meanings are:
diouXxd or i),
      unsigned octal (o), unsigned decimal
      (u), or unsigned hexadecimal
      (X or x).fF-]ddd.ddd
      where the number of d's after the decimal point is
      equal to the precision specification for the argument. If the precision is
      missing, 6 digits are given; if the precision is explicitly 0, no digits
      and no decimal point are printed. If the number is Infinity, or
      Not-a-Number, then ‘inf’ or
      ‘nan’ is printed for
      f format, and
      ‘INF’ or
      ‘NAN’ for F
      format.eE-]d.ddde±dd
      where there is one digit before the decimal point and the number after is
      equal to the precision specification for the argument; when the precision
      is missing, 6 digits are produced. An upper-case
      ‘E’ is used for an
      E format, and upper-case for Infinity and NaN as
      for F format.gGf (F) or in style
      e (E) whichever gives full
      precision in minimum space.aAbThe following additional backslash-escape sequences are supported:
\cprintf to ignore any remaining
          characters in the string operand containing it, any remaining string
          operands, and any additional characters in the format operand.\0num\^c\^?’).\M^c\M^?’).\M-cB\c’,
      ‘\^c’,
      ‘\M^c’, or
      ‘\M-c’ formats
      described above.csIn no case does a non-existent or small field width cause truncation of a field; padding takes place only if the specified field width exceeds the actual width.
If the first character of format is a dash,
    format must be preceded by a word consisting of two
    dashes (‘--’)
    to prevent it from being interpreted as an option string.
printf utility exits 0 on success,
  and >0 if an error occurs.
printf utility conforms to IEEE Std
  1003.1-2001 (“POSIX.1”).
Support for the floating point formats and
    ‘*’ as a field width and precision are
    optional in POSIX.
The behaviour of the %B format and the
    \', \",
    \e,
    \num, and
    \[M][-|^]c
    escape sequences are undefined in POSIX.
Hexadecimal character constants are restricted to, and should be specified as, two character constants. This is contrary to the ISO C standard but does guarantee detection of the end of the constant.
%c format to do likewise, but in fact it does not.
To convert a string representation of a decimal, octal, or
    hexadecimal number into the corresponding character, two nested
    printf invocations may be used, in which the inner
    invocation converts the input to an octal string, and the outer invocation
    uses the octal string as part of a format. For example, the following
    command outputs the character whose code is 0x0a, which is a newline in
    ASCII:
printf "$(printf '\\%o'
  0x0a)"| May 19, 2021 | NetBSD 10.1 |