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

О проекте

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.2 Примеры операторов print

Вот примеры печати цепочек, содержащих внутренние newline (`"n' есть управляющая последовательность для представления символа newline; см. раздел 4.2 [Управляющие последовательности], стр. 24):

$ awk 'BEGIN - print "line one"nline two"nline three" ""'
a line one
a line two
a line three

Следущий пример печатает два первых поля 
каждой входной записи с пробелом между ними:

$ awk '- print $1, $2 ""' inventory-shipped
a Jan 13
a Feb 15
a Mar 15...

Обычная ошибка при употреблении оператора --- пропуск запятой между двумя аргументами оператора print. Это часто приводит к печати аргументов на выходе подряд, без пробелов. Причина в том, что расположение рядом двух строковых выражений в awk означает их конкатенацию.

Вот результат той же самой программы
с пропущенной запятой:

$ awk '- print $1 $2 ""' inventory-shipped

a Jan13
a Feb15
a Mar15...

Для человека, незнакомого с файлом `inventory-shipped', результат обоих примеров имеет мало смысла. Заголовок в начале пояснит результат. Добавим заголовки к нашей таблице месяцев ($1) и зеленых корзин, отправленных морем ($2). Сделаем это с помощью образца BEGIN (см. раздел 8.1.5 [Специальные образцы BEGIN и END], стр. 100) для печати заголовков один раз:

awk 'BEGIN - print "Month Crates"
print "----- ------" "" - print $1, $2 ""' inventory-shipped

Вы уже догадались, что получится? При исполнении программа напечатает следующее:


Month Crates ----- ------ Jan 13 Feb 15 Mar 15...

Заголовки и табличные данные не выравниваются! Можно исправить это, печатая несколько пробелов между полями:

awk 'BEGIN - print "Month Crates"
print "----- ------" "" - print $1, " ", $2 ""' inventory-shipped

Нетрудно себе представить, что этот путь окажется сложным, если используется много столбцов. Подсчет пробелов для двух или трех довольно прост, но если их больше, вы можете сбиться в подсчете. Для таких целей был создан оператор printf (см. раздел 6.5 [Использование операторов printf для декоративной печати], стр. 64); одно из его назначений состоит в выравнивании столбцов данных. Заметим, что можно продолжать операторы print или printf, используя newline после любой запятой (см. раздел 2.6 [awk-операторы и строки], стр. 17).

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



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





Copyright © 2005-2016 Project.Net.Ru