Misplaced Pages

printf (Unix)

Article snapshot taken from[REDACTED] with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Standard UNIX utility
This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Printf" Unix – news · newspapers · books · scholar · JSTOR (July 2010) (Learn how and when to remove this message)
printf
Developer(s)Various open-source and commercial developers
Operating systemUnix and Unix-like
PlatformCross-platform
TypeCommand
Licensecoreutils: GPLv3+

In Unix and Unix-like operating systems, printf is a shell builtin (and utility program) 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

printf 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 %q for escaping strings in POSIX-shell format.

Examples

$ for NUMBER in  4 6 8 9 10
> do printf " >> %03d %d<< \n" $NUMBER $RANDOM
> done
 >> 004 26305<<
 >> 006 6687<<
 >> 008 20170<<
 >> 009 28322<<
 >> 010 4400<<

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

$ printf "%s\n" *

See also

References

  1. "printf(1): format/print data - Linux man page". linux.die.net.
  2. "GNU Coreutils". www.gnu.org.
  3. ^ printf(1) – Linux User Manual – User Commands
  4. printf – Shell and Utilities Reference, The Single UNIX Specification, Version 4 from The Open Group
  5. printf(1) – FreeBSD General Commands Manual

External links

Unix command-line interface programs and shell builtins
File system
Processes
User environment
Text processing
Shell builtins
Searching
Documentation
Software development
Miscellaneous
Categories:
printf (Unix) Add topic