printf - macOS


printf is a versatile command-line tool in macOS for formatted output. It allows precise control over the presentation of data, making it useful for generating reports, processing text files, and creating custom output.


printf [-v var] format [arguments]
  • -v var: Assigns the formatted output to the specified variable.
  • format: A formatting string that specifies how the arguments should be displayed.
  • arguments: Zero or more values to be formatted according to the formatting string.


  • -t: Quote the output using double quotes.
  • -n: Suppress the trailing newline from the output.
  • -0: Pad numeric output with leading zeros.


Basic Usage

$ printf "Hello, %s!\n" username
Hello, admin!

Formatting Numbers

$ printf "%d\n" 1024
$ printf "%05d\n" 123

Assigning to Variables

$ var=$(printf "Version: %s\n" 1.0)
$ echo "$var"
Version: 1.0

Common Issues

  • Mismatched Formatting String and Arguments: Ensure that the number of arguments matches the number of placeholders in the formatting string.
  • Syntax Errors: Check for correct syntax, including spaces and proper quoting.
  • Unsupported Formatting: printf does not support all the formatting options available in other programming languages like C.


printf can be combined with other commands to create powerful scripts.

Piping Output to Other Commands

$ cat text.txt | printf "Line %d: %s\n" $(seq 1 $(wc -l text.txt))
Line 1: This is a line
Line 2: in a text file

Using Variables in Shell Scripts

version=$(printf "%s" 1.2)
echo "The version is $version"
  • echo: Prints text to the standard output without formatting.
  • fmt: Formats text for better readability.
  • awk: Supports advanced text processing with powerful pattern matching and actions.

printf Manual Page