printf
je příkaz používaný v příkazové řádce pro formátování výstupu. Předlohou pro tento příkaz byla stejnojmenná funkce implementovaná v základní knihovně stdio.h[1] pro jazyky C a C++.
Implementace pro GNU coreutils byla napsána Davidem MacKenziem .
Použití
Syntaxe příkazu printf
je velmi podobná syntaxi předlohové funkce z knihovny stdio.h:
$ printf "%.2f\n" "11.4243" "21.5534"
11.42
21.55
Oproti předlohové funkci implementované v stdio.h však unixové implementace nabízí další specifikátory: %q
a %b
[2].
Specifikátor %b
byl vytvořen jako nadstavba specifikátoru pro stringy (%s
) a je schopný správně interpretovat escapování znaků:
$ printf "%s" "Ahoj\t" "svete"
Ahoj\tsvete
$ printf "%b" "Ahoj\t" "svete"
Ahoj svete
Specifikátor %q
je pak užitečný v případě, je-li potřeba použít výstup příkazu printf
jako vstup pro jiný příkaz.
Seznam některých specifikátorů
Kompletní seznam specifikátorů je dostupný v manuálu příkazu printf (man printf
)
Specifikátor |
Význam |
Použití |
Výstup
|
%f |
Desetinná čísla s různou přesností |
printf %.3f 3.14159 |
3.142
|
%d nebo %i |
Celá čísla |
printf %d 3.14159 |
3
|
%e |
Vědecká notace desetinných čísel |
printf %e 3.14159 |
3.141590e+00
|
%g |
Vědecká nebo normální reprezentace desetinných čísel, vybrána kratší reprezentace |
printf %g 3.14159 |
3.14159
|
%s |
Text |
printf %s "Lorem \\ ipsum" |
Lorem \\ ipsum
|
%b |
Text s escapováním znaků |
printf %b "Lorem \\ ipsum" |
Lorem \ ipsum
|
%% |
Vrací % |
printf %% "Lorem \\ ipsum" |
%
|
%q |
Formátuje výstup pro zpracování dalšími příkazy |
printf %q "Lorem \\ ipsum" |
Lorem \ ipsum
|
Reference
V tomto článku byl použit překlad textu z článku printf(Unix) na anglické Wikipedii.
- ↑ fprintf (C) manual [online]. Dostupné online. Je zde použita šablona
{{Cite web}}
označená jako k „pouze dočasnému použití“.
- ↑ printf (Unix) manual [online]. Dostupné online. Je zde použita šablona
{{Cite web}}
označená jako k „pouze dočasnému použití“.