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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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





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