| 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 (“%”). The remainder of the format specification includes, in the following order:
#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.-+0.’, 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:
diouXxfF.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 (NaN), then
      “inf” (or “nan”) is printed for
      f format, and “INF” (or
      “NAN”) for F format.eE.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^cB\
      c',
      `\^
      c',
      `\M-
      c' or
      `\M^
      c', formats described
    above.cs%In 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 \', \", \xxx, \e 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")"| August 31, 2018 | NetBSD 9.4 |