printf (Unix)

In Unix and Unix-like operating systems, printf ("print formatted") is a shell builtin (and utility program[2]) that formats and prints data.

printf
Operating systemUnix and Unix-like
TypeCommand
Licensecoreutils: GPLv3+[1]

The command accepts a printf format string, which specifies methods for formatting items, and a list of items to be formatted. Named historically after the intention of printing to a printer, it now actually outputs to stdout.[3] Characters in the format string are copied to the output or, if a % is encountered, are used to format an item. In addition to the standard formats, %b causes printf to expand backslash escape sequences (for example \n for newline), and %q outputs an item that can be used as shell input.[3] 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.[4] It first appeared in 4.3BSD-Reno.[5]

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.[3]

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" *
gollark: They're making dedicated cards next year.
gollark: For all the other problems with Intel, their Linux drivers are *great*.
gollark: It actually seems like the whole setup handling them is deliberately byzantine and overcomplicated to stop this sort of thing.
gollark: I am annoyed by how hard Amazon makes it to get the ebooks I bought (realistically, bought a license to legally) out of their walled garden and onto Calibre in some sort of actually standard format. Apparently I can't get any sort of usable files off the Android app, and I've lost my actual Kindle hardware, so I've had to download some ancient version of their Windows client and run it in Wine.
gollark: Yes, this does seem to go against the previously established thing of only Ennesby being able to do that.

See also

References

  1. https://linux.die.net/man/1/printf
  2. https://www.gnu.org/software/coreutils/manual/coreutils.html#printf-invocation
  3. printf(1)  Linux User's Manual – User Commands
  4. printf  Commands & Utilities Reference, The Single UNIX Specification, Issue 7 from The Open Group
  5. printf(1)  FreeBSD General Commands Manual
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.