П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
                                                 
Главная

О проекте

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

MySQL

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

Хостинг

Другое







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

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

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

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

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

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

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

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

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

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

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

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



 
 



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

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

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

6.5.4 Примеры употребления printf

Покажем, как использовать printf для выдачи выровненной таблицы:
awk '- printf "%-10s %s"n", $1, $2 ""' BBS-list печатает имена досок объявлений

($1) из файла `BBS-list' в виде цепочки 10 символов, выровненной по левому краю. Она также печатает телефонные номера ($2) дальше в строке. Это оформляется в виде выровненной двух-столбцовой таблицы имен и телефонных номеров:


$ awk '- printf "%-10s %s"n", $1, $2 ""' BBS-list
a aardvark 555-5553
a alpo-net 555-3412
a barfly 555-7685
a bites 555-1675
a camelot 555-0542
a core 555-2912
a fooey 555-1234
a foot 555-6699
a macfoo 555-6480
a sdace 555-3430
a sabafoo 555-2127

Заметили ли вы, что мы не указывали, чтобы телефонные номера печатались как числа? Они должны печататься как цепочки, потому что разделены знаком дефиса Если бы мы пытались напечатать телефонные номера как числа, все что мы могли бы получить, было тремя первыми цифрами, `555'. Это было бы очень плохо.

Мы не указывали ширину телефонных номеров, потому что они располагаются в концах своих строк. После них не нужно располагать пробелы. Мы могли бы сделать нашу таблицу красивее, добавив заголовки вверху колонок. Чтобы сделать это, используем образец BEGIN (см. раздел 8.1.5 [Специальные образцы BEGIN и END], стр.100), чтобы заголовок напечатался только один раз, в начале awk-программы:

awk 'BEGIN - print "Name Number"
print "---- ------" "" - printf "%-10s %s"n", $1, $2 ""' BBS-list

В этом примере мы смешали опереторы print и printf. Мы могли употребить только операторы printf для получения того же результата:

awk 'BEGIN - printf "%-10s %s"n", "Name", "Number"
printf "%-10s %s"n", "----", "------" "" - 
printf "%-10s %s"n", $1, $2 ""' BBS-list

Печатая заголовок каждой колонки с теми же спецификациями формата, которые использовались для элементов столбца, мы обеспечили выравнивание заголовков так же как и столбцов.

Факт, что та же спецификация формата используется три раза, может быть подчеркнут помещением ее в переменную, подобно следующему:

awk 'BEGIN - format = "%-10s %s"n"

printf format, "Name", "Number" 

printf format, "----", "------" "" -

printf format, $1, $2 ""' BBS-list

Попробуйте с помощью printf расположить в одой линии заголовки и табличные данные для нашей `inventory-shipped', рассмотренной ранее в разделе об операторе print (см. раздел 6.1 [Оператор print], стр. 61).

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



 





Copyright © 2005-2011 Project.Net.Ru


бланк заявления о расторжении брака, самокопирующиеся бланки, бланк искового заявления в суд