где format - это строка, содержащая информацию, которая будет печататься, и какое преобразование будет выполняться над выражением.
Каждая спецификация начинается с символа "%", заканчивается буквой, которая определяет преобразование, и может включать: - - выравнивание по левому краю в поле; width - заполнить поле на заданную ширину; поля, начинающиеся с лидирующего нуля, должны быть заполнены нулями; .prec - указывает максимальную ширину строки или разряд справа от десятичной точки.
В табл.6 приведен список символов преобразования printf.
Таблица 6 Символы преобразования printf
Символ
Вид печати выражения
c
Один символ
d
Десятичное число
e
[-]d.ddddddE[+-]dd
f
[-]ddd.dddddd
g
e или f преобразование с подавленем незначащих нулей
o
Беззнаковое восьмиричное число
s
Строка
x
Беззнаковое шестнадцатиричное число
%
Печать %; нет аргументов для преобразования
Примеры оператора printf с соответтвующим выводом на той же строке.
printf "%d", 99/2 49
printf "%s", 99/2 4.950000e+01
printf "%f", 99/2 49.500000
printf "%6.2f", 99/2 49.50
printf "%g", 99/2 49.5
printf "%o", 99 143
printf "%06o", 99 000143
printf "%x", 99 63
printf "|%10s|", "January" | January|
printf "|%-10s|", "January" |January |
printf "|%.3s|", "January" |Jan|
printf "|%10.3s|", "January" | Jan|
printf "|%-10.3s|", "January" |Jan |
printf "%%" %
По умолчанию формат чисел выводного файла %.6g. Он может быть изменен, если вы зададите новое значение OFMT. OFMT также управляет преобразованием цифровых значений в строковые при конкатенации и создании массива индексов.
В качестве стандартного вывода для печати можно использовать файлы. Для этого используются операторы изменения направления > и >>. Например, следующая программа вызывает печать из файла countries всех строк, в которых 3-е поле (население) больше, чем 100, в файл bigpop и все остальные строки в файл smallpop:
$3 > 100 { printf $1, $3 > "bigpop" }
$3 > 100 { printf $1, $3 > "smallpop" }
Обратите внимание, что имена файлов заключены в двойные кавычки; без кавычек bigpop и smallpop будут просто неустановленными переменными. Если имена выводных файлов создаются с помощью выражения, они должны быть заключены в круглые скобки: