руководство пользователя для gnu awk
arnold d. robbins
перевод балуева а. н.
приложение d. глоссарий
action (действие)
последовательность операторов, связанных с правилом. если образец правила
соответствует входной записи, awk выполняет действие правила. действия всегда
заключаются в фигурные скобки. см. раздел 8.2 [обзор действий], стр. 102.
amazing awk assembler (удивительный ассемблер awk)
генри спенсер из университета в toronto написал пере направляемый ассемблер
полностью на awk. длина его --- тысячи строк, включая машинные описания
восьмибитовых микрокомпьютеров. это хороший пример программы, которую лучше
было бы написать на другом языке.
amazingly workable formatter (awf) (удивительный работоспособный форматчик)
генри спенсер из университета toronto написал форматчик, который принимает
большое подмножество `nroff -ms' and `nroff -man' команд форматирования,
используя awk и sh.
ansi
американский национальный институт стандартов. эта организация разрабатывает
многие стандарты, в том числе для языков программирования c и c++ .
assignment (присваивание)
выражение в awk, которое изменяет значение некоторой переменной awk или
объекта данных. объект, которому можно присваивать, называется lvalue.
присвоенные значения называются rvalues. см. раздел 7.7 [присваивающие
выражения], стр. 84.
awk language (язык awk)
язык, на котором пишутся awk-программы.
awk program (awk-программа)
awk-программа состоит из последовательности образцов и действий, составляющих
вместе правила. для каждой входной записи, переданной программе, все правила
обрабатываются последовательно друг за другом. awk-программы могут также
содержать определения функций.
awk script (сценарий awk)
другое название awk-программы.
bash
версия gnu стандартной оболочки
(the bourne-again shell).
см. "bourne shell."
bbs
см. "bulletin board system."
boolean expression (булевское выражение)
названо по имени английского математика boole. см. "logical expression."
bourne shell (оболочка бурне)
стандартная оболочка (`/bin/sh') на unix и unix-подобных системах,
первоначально написанная steven r. bourne. многие оболочки (bash, ksh, pdksh,
zsh) вообще говоря совместимы сверху с оболочкой бурне.
built-in function (встроенная функция)
язык awk предоставляет встроенные функции, которые производят различные
численные, связанные с преобразованием времени и с цепочками вычисления.
например, sqrt (квадратный корень из числа) и substr (подцепочка цепочки).
см. главу 12 [встроенные функции], стр. 135.
built-in variable (встроенная переменная)
argc, argind, argv, convfmt, environ, errno, fieldwidths, filename, fnr, fs,
ignorecase, nf, nr, ofmt, ofs, ors, rlength, rstart, rs, rt и subsep
есть переменные, играющие особые роли в awk. изменение некоторых из них
действует на исполнение окружения awk. некоторые из этих переменных
специфичны для gawk. см. главу 10 [встроенные переменные], стр. 115.
braces (скобки)
см. "curly braces."
bulletin board system
компьютерная система, дающая пользователям возможность входить в нее и
читать и/или оставлять сообщения для других пользователей системы, очень
похоже на вывешивание на доску бумажек с объявлениями.
c (си)
системный язык программирования, на котором написано большинство программного
обеспечения gnu. язык программирования awk имеет синтаксис, подобный
синтаксису си, и в этой книге отмечены многие сходные черты awk и си.
character set (множество знаков)
множество численных кодов, используемых в компьютерных системах для
представления символов (букв , цифр, знаков пунктуации и пр.) принятых в
определенной стране или местности. наиболее используемое множество знаков
в настоящее время есть ascii (american standard code for information
interchange). многие европейские страны используют расширение ascii, известное
как iso-8859-1 (iso latin-1).
chem
препроцессор для pic, который читает описания молекул и выдает входную
информацию для pic, который их рисует. был написан на awk брианом
кенингхеном и джоном бентли, доступен в netlib@research.bell-labs.com.
compound statement (составной оператор)
последовательность операторов awk, заключенная в фигурные скобки. составные
операторы могут вкладываться друг в друга. см. главу 9 [управляющие операторы
в действиях], стр. 105.
concatenation (конкатенация)
конкатенация двух цепочек означает соединение их вместе, одной после другой,
в новую цепочку. например, цепочка `foo', соединенная с цепочкой `bar', даст
цепочку `foobar'. см. раздел 7.6 [конкатенация цепочек], стр. 83.
conditional expression (условное выражение)
выражение, использующее трехместный оператор `?:', имеет форму
`expr1 ? expr2 : expr3'. сначала вычисляет выражение expr1; если результат
есть true, значение всего выражения есть expr2, в противном случае это
значение есть expr3. в каждом случае вычисляется только одно из пары
expr2 и expr3. см. раздел 7.12 [условные выражения], стр. 92.
comparison expression (сравнительное выражение)
отношение, которое имеет значение или true или false, такое как `(a ! b)'.
сравнительные выражения используются в составе операторов if, while, do и for,
а также в образцах для выбора того, какую входную запись обрабатывать. см.
раздел 7.10 [типы переменных и сравнительные выражения], стр. 88.
curly braces (фигурные скобки)
знаки `-' и `""'. фигурные скобки используются в awk для ограничения
действий, составных операторов и тел функций.
dark corner (темный угол)
области языка, где спецификации часто были (или еще остаются) неясными,
приводящими к неожиданным или нежелательным действиям. такие области отмечены
в тексте этой книги как "(d.c.)" и указываются под заголовком "dark corner."
data objects (объекты данных)
это числа и цепочки символов. числа конвертируются в цепочки и обратно, если
это нужно. см. раздел 7.4 [конверсии цепочек и чисел], стр. 81.
double precision (двойная точность)
внутреннее представление чисел, которые могут иметь дробные части. числа
двойной точности содержат больше десятичных цифр чем числа простой точности.
dynamic regular expression (динамические регулярные выражения)
динамическое регулярное выражение есть регулярное выражение, написанное как
обычное выражение. оно может быть строковой постоянной, такой как "foo", но
может также быть выражением, значение которого может меняться. см. раздел
4.7 [употребление динамических regexps], стр. 35.
environment (окружение)
совокупность цепочек вида имя=значение, которые доступны всякой программе.
пользователи обычно помещают значения в окружение, чтобы передавать информацию
другим программам. типичные примеры представляют переменные окружения
home и path.
empty string (пустая цепочка)
см. "null string."
escape sequences (управляющая последовательность)
специальная последовательность знаков, используемая для описания непечатных
символов, такая как `"n' для newline, или `"033' для ascii esc (escape)
символа. см. раздел 4.2 [управляющие последовательности], стр. 24.
field (поле)
когда awk читает входную запись, она разделяет ее на части, разделенные
знаками whitespace (или значениями специального regexp, которое вы можете
изменять установкой встроенной переменной fs). эти части называются полями.
если куски имеют фиксированную длину, можно использовать встроенную переменную
fieldwidths для указания их длины. см. раздел 5.5 [указание того, как
разделять поля], стр. 44, а также раздел 5.6 [чтение данных фиксированной
ширины], стр. 49.
floating point number (числа с плавающей точкой)
они в математике часто называются рациональными числами. это числа, которые
могут иметь дробную часть. см. "double precision" и "single precision."
format (формат)
форматные цепочки используются для управления формой вывода в операторах
printf. а также в конверсии чисел в цепочки управляются форматной
цепочкой во встроенной переменной convfmt. см. раздел 6.5.2 [буквы
управления форматом], стр. 65.
function (функция)
специальная группа операторов, используемая для инкапсулирования общих или
специфичных для конкретной программы задач. awk имеет некоторое количество
встроенных функций и дает возможность пользователям определять свои
собственные. см. главу 12 [встроенные функции], стр. 135, и главу 13
[функции, определенные пользователем], стр. 153.
fsf cм. "free software foundation."
бесприбыльная организация, занимающаяся размножением и распространением
программного обеспечения. ее основатель richard m. stallman, автор редактора
emacs. gnu emacs есть сегодня наиболее широко распространенная версия emacs.
gawk
gnu-реализация awk.
general public license (всеобщая публикационная лицензия)
этот документ описывает условия, в которых gawk и ее исходный код могут
распространяться. (см. [gnu general public license], стр. 309)
gnu "gnu's not unix".
разрабатываемый в free software foundation проект создания полного,
posix-ориентированного свободно распространяемого вычислительного окружения.
gpl см."general public license."
hexadecimal (шестнадцатеричный)
система обозначения чисел с основанием 16 и цифрами 0-9 и a-f, где `a'
представляет 10, `b' представляет 11 и т.д. до `f' для 15. шестнадцатеричные
числа пишутся в си с ведущим обозначением `0x', указывающим их основание.
так, 0x12 есть 18 (16 плюс 2).
i/o
сокращение для "input/output," акт переноса данных к и от исполняемой
программы.
input record (входная запись)
порция данных, читаемая в awk. обычно входная запись для awk состоит из
одной строки текста. см. раздел 5.1 [как ввод разделяется на записи], стр. 37.
integer (целое)
целое число, т.е. число, не имеющее дробной части.
keyword (ключевое слово)
в языке awk ключевыми называются слова, имеющие специальное
значение. они зарезервированы и не должны использоваться в качестве имен
переменных. ключевые слова gawk: begin, end, if, else, while, do...while, for,
for...in, break, continue, delete, next, nextfile, function, func, exit.
logical expression (логическое выражение)
выражение, использующее логические операции и, или и нет, обозначаемые в
awk соответственно `&&', `||' и `!'. часто называются булевскими по
имени математика, который впервые использовал их в математической логике.
lvalue
выражение, которое может появиться в левой части оператора присваивания.
в большинстве языков lvalues могут быть переменные или компоненты массива.
в awk обозначение поля также может быть lvalue.
null string (нулевая цепочка)
цепочка, не содержащая в себе знаков. ее явное обозначение в awk-программе
есть две соседние двойные кавычки (""). она может появиться в входных
данных, имеющих два последовательных вхождения разделителей полей.
number (число)
объект данных с значением числа. реализация gawk для внутреннего представления
чисел использует двойную точность. очень старые реализации awk используют
числа с плавающей точкой простой точности.
octal (восьмеричный)
обозначение чисел с основанием восемь, с цифрами 0-7. в си восьмеричные числа
пишутся с ведущим `0', для указания из базы. так, 013 есть 11 (восемь
плюс три).
pattern (образец)
образцы сообщают awk, какие входные записи представляют интерес для
соответствующих правил. образец есть произвольное условное выражение,
проверяющее ввод.
posix
название серии стандартов, разработанных в ieee, которые описывают интерфейс с
переносимыми операционными системами. "ix" обозначает, что они наследуют
свойства unix. главный стандарт, представляющий интерес для пользователей
awk, есть стандарт ieee для информационной технологии, стандарт 1003.2-1992,
portable operating system interface (posix), часть 2: оболочка и утилиты.
неформально на этот стандарт часто ссылаются просто как "p1003.2."
private (собственный, частный)
переменные и/или функции, которые предназначены для использования только в
библиотечных функциях, а не в главной программе awk. имена таких переменных и
функций должны подчиняться специальным ограничениям. см. раздел 15.13
[наименования
range (of input lines) диапазон (для входных строк)
последовательность соседних строк из входного файла. образец может указывать
диапазоны входных строк для обработки в awk, или указывать отдельные строки.
см. раздел 8.1 [элементы образцов], стр. 97.
recursion (рекурсия)
когда функция вызывает саму себя, непосредственно или через другие вызовы.
если это непонятно, ищите информацию по ключевому слову "recursion."
redirection (перенаправление)
перенаправление означает производство ввода не из стандартного входного потока
или выхода не в стандартный выходной поток. можно перенаправить выход от
операторов печати print или printf в файл или систему команд, используя
`?', `??'и `--'. можно перенаправить ввод к оператору getline, используя
операторы `!' и `--' operators. см. раздел 6.6 [перенаправление выхода от
print и printf], стр. 70, и раздел 5.8 [явный ввод по getline], стр. 53.
regexp (сокращенное название для регулярного выражения)
regexp есть образец, обозначающий множество цепочек, возможно бесконечное.
например, regexp `r.*xp' соответствует каждой цепочке, начинающейся с
буквы `r' и кончающейся буквами `xp'. в awk регулярные выражения используются
в образцах и в условных выражениях. regexps могут содержать управляющие
последовательности. см. главу 4 [регулярные выражения], стр. 23.
regular expression
см. "regexp."
regular expression constant (постоянное регулярное выражение)
постоянное регулярное выражение есть регулярное выражение, заключенное в
обратные слеши, например, /foo/. такое регулярное выражение выбирается при
написании программы и не может изменяться во время ее исполнения, см.
раздел 4.1 [как употреблять регулярные выражения], стр. 23.
rule (правило)
часть программы, которая определяет, как обрабатывать отдельные входные
записи. правило состоит из образца и действия. awk читает входную запись;
затем для каждого правила, если запись соответствует образцу правила,
awk выполняет действие правила. в противном случае правило ничего не делает с
этой записью.
rvalue
значение, которое может появляться в правой части оператора присваивания.
в awk каждое выражение имеет значение. эти значения и есть rvalues.
sed
см. "stream editor" (поточный редактор)
short-circuit (сокращенная схема исполнения)
свойство логических операторов `&&' и `||'в awk. если значение всего
выражения может быть определено вычислением его левой компоненты, правая
компонента не вычисляется (см. раздел 7.11 [булевские выражения], стр. 91).
side effect (побочный эффект)
побочный эффект появляется, когда вычисление выражение не ограничивается
только определением его значения. присваивающие выражения, увеличивающие и
уменьшающие выражения и вызовы функций обладают побочными эффектами. см.
раздел 7.7 [присваивающие выражения], стр. 84.
single precision (простая точность)
числа во внутреннем представлении могут иметь дробную часть. при простой
точности в их представлении удерживается меньше цифр, чем при двойной
точности, но операции над ними менее дороги в смысле затрачиваемого на них
машинного времени. этот тип представления используется самыми старыми версиями used by some very old versions of awk
awk. он совпадает с типом си float.
space (пробел)
символ, генерируемый при нажатии клавиши "пробел".
special file (специальный файл)
имя файла, которое gawk интерпретирует внутренним образом, не поручая его
обработку операционной системе. например `/dev/stderr'. см. раздел
6.7 [специальные
stream editor (поточный редактор)
программа, которая читает записи из входного потока и обрабатывает их по
одной или больше за раз. в отличие от пакетных программ, которые обычно
читают свои входные файлы целиком прежде чем принимаются за дело, и от
интерактивных программ, требующих ввод от пользователя.
string (цепочка)
единица данных, представляющая последовательность знаков, такая как
`i am a string'. цепочки постоянные пишутся в языке awk в двойных кавычках
и могут содержать управляющие последовательности. см. раздел 4.2 [управляющие
последовательности], стр. 24.
tab
символ, порождаемый при нажатии клавиши tab на клавиатуре. обычно он
сопровождается при выводе восемью пробелами
unix
компьютерная операционная система, впервые разработанная в начале 1970-х в
at&t bell laboratories. сначала стала популярной в университетских кругах, а
позднее распространилась в коммерческие организации как система для разработки
программного обеспечения и обслуживания сетевых серверов. имеется много
коммерческих версий unix, также как и рабочих систем, коды которых свободно
доступны (таких как linux, netbsd и freebsd).
whitespace
последовательность пробелов, tab или newline внутри входной записи или
цепочки.
gnu general public license
версия 2, июнь 1991, copyright cfl 1989, 1991 free software foundation,
inc. 59 temple place -- suite 330, boston, ma 02111-1307, usa
каждый имеет право копировать и распространять дословные копии этой лицензии,
но изменения не допускаются.
лицензии для большинства программных обеспечений предназначены для запрета
свободного использования и изменения их. в отличие от этого, gnu general
public license предоставляет вам гарантии свободного использования
и изменения свободного программного обеспечения --при условии, что оно
свободно доступна всем его пользователям. эта general public license
распространяется на большинство продуктов software foundation и на все
другие программы, авторы которых согласны с ней. (некоторые другие
продукты free software foundation вместо нее покрываются gnu library
general public license.) вы также можете применять ее к своим программам.
когда мы говорим о свободном программном обеспечении, мы имеем ввиду свободу,
но не цену. наша general public licenses предназначены для подтверждения
свободного права распространять копии свободного обеспечения ( получать
плату за услуги, если вы хотите), получать исходные коды или иметь возможность
при желании их получить, того, что вы можете изменять программное обеспечение
или использовать его части в новых свободных программах; и того, что вы знаете,
что можете это все делать.
чтобы защищать ваши права, нам нужно вводить ограничения, которые
запрещают кому бы то ни было отрицать ваши права или просить вас отказаться от
прав. эти ограничения приводят к известной ответственности для вас, если вы
распространяете копии обеспечения или если вы изменяете его.
например, если вы распространяете копии таких программ, даром или за плату,
вы должны передать получателем все права, которые вы сами имеете.
мы защищаем ваши права в два приема: (1) copyright на обеспечение и (2)
предлагаем вам эту лицензию, которая дает вам легальное право копировать,
распространять и/или модифицировать его.
|