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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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