2.2. Flags to the conversions
One can put various flags between the percent sign and before the conversion character, which alter the output. Here is a list of them:
space | Prefix positive number with a space |
+ | Prefix positive number with a + sign |
- | Left justify the output within the specified field |
0 | Use zeros, not spaces to right justify. |
# | Prefix non-zero octal with 0, non-zero hex with "0x", and non-zero binary with "0b" |
For example (taken from perldoc -f sprintf):
printf '<% d>', 12; # prints "< 12>" printf '<%+d>', 12; # prints "<+12>" printf '<%6s>', 12; # prints "< 12>" printf '<%-6s>', 12; # prints "<12 >" printf '<%06s>', 12; # prints "<000012>" printf '<%#x>', 12; # prints "<0xc>"
Note that printf formats its arguments using sprintf and then prints them using print.