Printf (Unix) Explained

printf
Developer:Various open-source and commercial developers
Operating System:Unix and Unix-like
Platform:Cross-platform
Genre:Command
License:coreutils

GPLv3+[1]

In Unix and Unix-like operating systems, printf is a shell builtin (and utility program[2]) that formats and outputs text like the same-named C function.

Originally named for outputting to a printer, it actually outputs to standard output.

The command accepts a format string, which specifies how to format values, and a list of values.

Characters in the format string are copied to the output verbatim except when a format specifier is found which causes a value to be output.

In addition to the standard format specifiers, %b causes the command to expand backslash escape sequences (for example \n for newline), and %q outputs an item that can be used as shell input. The format string is reused if there are more items than format specs. Unused format specs provide a zero value or null string.

History

is part of the X/Open Portability Guide since issue 4 of 1992. It was inherited into the first version of POSIX.1 and the Single Unix Specification. It first appeared in 4.3BSD-Reno.

The version of printf bundled in GNU coreutils was written by David MacKenzie. It has an extension for escaping strings in POSIX-shell format.

Examples

This will print a directory listing, emulating 'ls':

See also

Notes and References

  1. Web site: printf(1): format/print data - Linux man page. linux.die.net.
  2. Web site: GNU Coreutils. www.gnu.org.