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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





Руководство пользователя для 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-2016 Project.Net.Ru