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

О проекте

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

MySQL

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

Хостинг

Другое








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

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

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

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

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

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

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

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

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

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

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

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



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




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