Читаем Linux и UNIX: программирование в shell. Руководство разработчика. полностью

-Аргумент выравнивается по левому краю поля вывода (по умолчанию принято правостороннее выравнивание)
пробелЕсли аргумент является положительным числом, перед ним ставится
пробел, а если отрицательным — знак минус
+Если аргумент является числом, ему всегда предшествует знак плюс,
даже если это положительное число
#Выбирается альтернативная форма спецификатора:
%о — восьмеричному числу предшествует ведущий ноль;
%x — шестнадцатеричному числу предшествует запись 0x;
%x — шестнадцатеричному числу предшествует запись Оx;
%e, %E, %f — число всегда содержит десятичную точку;
%g, %G — вывод незначащих нулей не подавляется
0Если длина поля вывода больше, чем число символов в представлении
аргумента, аргумент дополняется нулями, а не пробелами
ширинаШирина поля вывода; если длина поля больше, чем число символов
в представлении аргумента, аргумент по умолчанию дополняется
пробелами
. точностьТочность представления аргумента:
%е, %е, %f — число символов после десятичной точки;
%g, %g — максимальное число значащих цифр;
%d, %o, %i, %u, %x, %X — минимальное число выводимых цифр;
% s — максимальное число выводимых символов

Преобразование символов

Чтобы узнать, ASCII–код какого символа равен 65, можно с помощью команды echo направить строку "65" утилите awk и затем передать ее в качестве аргумента команде printf со спецификатором %с. Команда printf выполнит преобразование автоматически:

$ echo "65" | awk '{printf "%c\n", $0}'

A

Как видите, это символ 'A'. Обратите внимание на наличие в команде символа новой строки (\n). Необходимость в нем объясняется тем, что команда printf по умолчанию не записывает этот символ в выходной поток. Если не указать Escape–последовательность \n, сразу после буквы 'А' в той же строке будет отображено приглашение интерпретатора shell, что может смутить пользователя, работающего в данный момент за терминалом.

Конечно, код символа может быть указан непосредственно в команде printf:

$ awk 'BEGIN {printf "%c\n", 65}'

A

Форматированный вывод

Предположим, необходимо отобразить имена учеников и их идентификаторы, причем имена должны быть выровнены по левому краю и размещаться в поле длиной 15 символов. В конце строки форматирования стоит символ новой строки (\n(,

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

$ awk '{printf "%-l5s %d\n", $1, $3}' grade.txt

M. Tansley 48311

J. Lulu 48311

P. Bunny 4 8

J. Troll 4842

L. Tansley 4712

<p><emphasis><strong>9.2.13. Передача переменных утилите awk</strong></emphasis></p>

Переменные можно создавать не только в сценарии awk, но и непосредственно в командной строке. Формат вызова утилиты awk в этом случае таков:

awk 'сценарий' переменная=значение входной_файл

В следующем примере переменная AGE создается в командной строке и инициализируется значением 10. Показанная команда находит студентов, возраст которых не превышает 10 лет.

$ awk '{if($5 < AGE) print $0}' AGE=10 grade.txt

M. Tansley 05/99 48311 Green 8 40 44

J. Lulu 06/99 48317 green 9 24 26

Рассмотрим более сложный пример. Системная команда df отображает информацию о смонтированных файловых системах. Результаты ее работы по умолчанию имеют следующий формат:

ИмяЧисло блоков .Занято блоковСвободно блоковПроцентТочка монтирования
файловой системызанятых
блоков
Столбец123456
Перейти на страницу:

Похожие книги

112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)
112 страниц про Париж. Опыт создания путеводителя (в помощь самостоятельным туристам)

  По Парижу приятно гулять, бесцельно бродить, кружить по узким улочкам, отдыхать в маленьких кафе и в парках у фонтанов. Здесь есть все для любителей архитектуры, ценителей живописи, театралов, меломанов, гурманов, поклонников всевозможных развлечений. Париж притягивает, удивляет, очаровывает, постепенно приоткрывая тайны любознательному гостю, который теряется от сложности выбора: что же увидеть прямо сейчас, а что отложить на потом. Мои 112 страниц про Париж, надеюсь, помогут сделать этот выбор. Предложенные 7 прогулок по городу включают в себя не только известные всему миру достопримечательности, но и множество других, которые часто остаются за пределами стандартных туристических маршрутов.  

Елена Р Стамбулян , Елена Р. Стамбулян

Руководства / Путеводители / Словари и Энциклопедии
40+. Уход за телом
40+. Уход за телом

Женщина после 40 лет – настоящая богиня, умудренная опытом и оттого еще более прекрасная. Но чтобы надолго сохранить красоту и молодость, нужно постоянно собой заниматься: ухаживать за своим телом, руками и ногами, выполнять физические упражнения и соблюдать диету. Благодаря этой книге вы научитесь самостоятельно готовить омолаживающие, питательные, увлажняющие кремы и маски, а также скрабы и пилинги из натуральных продуктов; выполнять легкие и эффективные упражнения для стройной фигуры и профилактики варикозного расширения вен, делать массаж рук и ног, навсегда избавитесь от целлюлита и сможете легко ориентироваться в выборе омолаживающих процедур в СПА-салонах и хирургических операций в клиниках красоты. Правила здорового питания, популярные диеты и рецепты полезных блюд – в этой книге есть все, что поможет 40-летним женщинам всегда быть в форме.

Анастасия Витальевна Колпакова

Здоровье / Руководства / Здоровье и красота / Дом и досуг / Словари и Энциклопедии