Операционная система UNIX. Руководство пользователя

Оператор printf


Оператор printf, используемый в awk, подобен этому оператору в Си, за исключением того, что спецификатор * не поддерживается.

Общий формат оператора:

print format expr1, rxpr2, ..., exprn

где format - это строка, содержащая информацию, которая будет печататься, и какое преобразование будет выполняться над выражением.

Каждая спецификация начинается с символа "%", заканчивается буквой, которая определяет преобразование, и может включать:
- - выравнивание по левому краю в поле;
width - заполнить поле на заданную ширину; поля, начинающиеся с лидирующего нуля, должны быть заполнены нулями;
.prec - указывает максимальную ширину строки или разряд справа от десятичной точки.

В табл. 26 приведен список символов преобразования printf.

Таблица 26
Символы преобразования 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 также управляет преобразованием цифровых значений в строковые при конкатенации и создании массива индексов.



Содержание раздела