Руководство пользователя для GNU Awk
6. Печатный вывод
6.3 Разделители выхода
Как уже говорилось, операторы печати содержат списки аргументов, разделенных запятыми. На печати образы аргументов нормально разделяются одиночными пробелами. Но это не обязательно так, а только по умолчанию. Можно указывать любую цепочку символов для использования в качестве разделителя полей на выходе с помощью встроенной переменной OFS. Начальное значение этой переменной есть цепочка " ", т.е. один пробел. Результат отдельного оператора печати называется выходной записью. Каждый оператор печати выдает одну выходную запись, а затем выдает цепочку, называемую разделителем выходных записей. Встроенная переменная ORS указывает эту цепочку.
Ее начальное значение есть ""n", т.e. символ newline; таким образом, нормально каждый оператор печати выдает отдельную строку. Можно изменять разделители выходных полей и записей присваиванием новых значений переменным OFS и/или ORS. Обычное место делать это есть правило BEGIN (см. раздел 8.1.5 [Специальные образцы BEGIN и END], стр. 100), т.е. до обработки любого входа. Можно также делать это присваиванием в командной строке, перед именами входных файлов, или с помощью параметра командной строки `-v' (см. раздел 14.1 [Параметры командной строки], стр. 161).
Следующий пример печатает первое и второе поля каждой входной записи, разделенные точкой с запятой и добавляет пустую строку после каждой печатаемой строки:
$ awk 'BEGIN - OFS = ";";
ORS = ""n"n" "" ? - print $1, $2 ""' BBS-list
a aardvark;555-5553
a alpo-net;555-3412
a barfly;555-7685...
Усли значение ORS не содержит newline, весь выход пойдет в одну строку, если вы не вставите newline каким-нибудь другим путем.
Назад | Вперед
Содержание (общее) | Содержание раздела
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|