П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 177049 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 74230 раз(а).

Учебник HTML.
Просмотров 73367 раз(а).

Руководство по PHP5.
Просмотров 44238 раз(а).

Хостинг через призму DNS.
Просмотров 50991 раз(а).

Подборка текстов стандартных документов.
Просмотров 44422 раз(а).

Учебник PHP - Самоучитель
Просмотров 50662 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 51084 раз(а).

Внешние атаки...
Просмотров 41391 раз(а).

Учебник PHP.
Просмотров 36609 раз(а).

SSI в примерах.
Просмотров 27467 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь




Руководство пользователя для GNU Awk

6. Печатный вывод

6.5 Использование операторов printf для декоративной печати

6.5.3 Модификаторы в форматах для printf

Спецификатор формата может включать в себя модификаторы, определяющие, какая порция значения аргумента печатается и сколько места получает. Модификаторы располагаются между `%' и управляющей форматом буквой. В следующих ниже примерах мы используем маркер "ffl" для представления пробелов в выводе. Приведем возможные модификаторы в порядке, в котором они могут появиться:

-
Знак минуса, используется перед модификатором ширины (см. ниже), требует выравнивания аргумента по левому краю поля указанной ширины. Нормально аргумент выравнивается по правому краю. Так, printf "%-4s", "foo" печатает `fooffl'.

пробел
При выдаче чисел предваряет пробелом положительные значения и минусом отрицательные.

+
Знак плюса пишется перед модификатором ширины (см. ниже), требует всегда ставить знак числа во всех случаях. `+' подавляет модификатор пробел.

#
Означает "альтернативную форму" для некоторых управляющих букв. Для `%o' требует добавить ведущий ноль. Для For `%x' и `%X' добавить ведущий `0x' или`0X' в случае ненулевого результата. Для `%e', `%E'и `%f' результат всегда будет иметь десятичную точку. При `%g' и `%G' завершающие нули не удаляются из результата.

0
Ведущий `0' (ноль) действует как флажок, указывающий, что вывод должен заполняться нулями вместо пробелов. Это применяется даже к нечисловым форматам вывода (d.c.). Этот флажок действует только тогда, когда ширина поля больше печатаемого значения.

ширина
Это число, указывающее желаемую минимальную ширину поля. Помещение любого числа между знаком `%' управляющий форматом буквы требует расширения поля до указанного размера. Способ сделать это по умолчанию состоит в заполнении поля пробелами слева.

Например, printf "%4s", "foo" печатает `fflfoo'. Значение ширины есть минимальная ширина, а не максимальная. Если значение аргумента требует знаков больше, чем указанная ширина, ширина увеличивается до необходимой. Так printf "%4s", "foobar" печатает `foobar'. Указание знака минус перед шириной предписывает пополнять вывод пробелами справа, а не слева.

.prec (точность)
Это число, которое указывает точность при печати. В случае форматов `e', `E' и `f' оно означает количество цифр, которые вы хотите напечатать справа от десятичной точки. Для форматов `g' и `G' оно указывает максимальное количество значащих цифр. Для форматов `d', `o', `i', `u', `x' и `X' оно указывает минимальное количество печатаемых цифр. Для цепочек оно указывает максимальное количество знаков из цепочки, которые должны быть напечатаны. Таким образом,


printf "%.4s", "foobar" печатает `foob'.

Поддерживаются также динамическая ширина и свойство prec оператора printf из библиотеки Си (for example, "%*.*s"). Вместо явного указания ширины и/или значений prec в форматной строке их можно передавать в списке аргументов.

Например:

w = 5 p = 3 s = "abcdefg" printf "%*.*s"n", w, p, s
в точности эквивалентно
s = "abcdefg" printf "%5.3s"n", s

Обе программы напечатают `fflfflabc'.

Ранние версии awk не имели этой возможности. Если вам приходится использовать такую версию, можно моделировать упомянутое свойство, используя конкатенацию при построении форматной строки, подобен следующему:

w = 5 p = 3 s = "abcdefg" 

printf "%" w "." p "s"n", s

Это не очень легко читать, но это работает.

Си-программисты могли привыкнуть употреблять дополнительные флажки `l' и `h' в форматной строке printf. Но они отсутствуют в awk. Большинство реализаций awk молчаливо игнорируют эти флажки. Если `--lint' указано в командной строке (см. раздел 14.1 [Параметры командной строки], стр. 161), gawk предостережет от их использования. Если указано `--posix', их использование приведет к фатальной ошибке.

Назад | Вперед
Содержание (общее) | Содержание раздела | Содержание подраздела



Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru