Руководство пользователя для GNU Awk

Arnold D. Robbins
перевод Балуева А. Н.
Оглавление

Предисловие

В начало страницы

Эта книга научит вас языку AWK и тому, как им эффективно пользоваться. Вы должны предварительно быть знакомы с базисными системными командами, с такими как cat и ls,1, и с основными средствами оболочки, такими как перенаправление Input/Output (I/O) и конвейерами (pipes). Реализации языка awk имеются для многих различных окружений. Эта книга, описывая общие черты языка awk, описывает также конкретную реализацию awk, называемую Gawk (что является сокращением для "GNU Awk"). Gawk исполняется на многих системах Unix, от 80386 PC-based компьютеров до large scale systems, таких как Crays. Gawk перенесен также на MS-DOS и OS/2 PC's, на Atari и Amiga micro-computers, и на VMS.

История awk и gawk

В начало страницы

Название awk произошло от инициалов егj создателей: Alfred V. Aho, Peter J. Weinberger и Brian W. Kernighan. Начальная версия была описана в 1977г. в AT&T Bell Laboratories. В 1985 была создана более мощная версия языка, вводящая определяемые пользователем функции, кратные входные потоки и вычисляемые регулярные выражения. Это новая версия стала доступной в Unix System V Release 3.1. В версии System V Release 4 были добавлены некоторые новые свойства и уточнены действия в "темных углах" языка. Спецификации для awk в POSIX Command Language и Utilities standard еще больше прояснили язык с помощью обратной связи с создателями gawk и с первоначальными авторамии awk из Bell Labs.

Реализацию GNU, т.е. gawk, написали в 1986г Paul Rubin и Jay Fenlason, с помощью от Richard Stallman. John Woods также добавил части кода. В 1988 и and 1989гг. David Trueman, с помощью Arnold Robbins, полностью переработал gawk для совместимости с обновленным awk. Текущее развитие языка фокусируется на исправлении ошибок, улучшении производительности, стандартизации и иногда на добавлении новых черт.

Проект GNU и эта книга

В начало страницы

Free Software Foundation (FSF) есть бесприбыльная организация для производства и распространения свободно распространяемого программного обеспечения.

1 Эти команды доступны на системах, соответствующих POSIX, так же как на традиционных, основанных на Unix системах. Если вы пользуетесь какой-нибудь другой операционной системой, вам все равно необходимо знакомство с идеями перенаправления I/O и с конвейерами.

2 Эффективное программирование на AWK было основано Ричардом М. Сталманом, автором оригинального редактора Emacs editor. GNU Emacs есть наиболее широко используемая в настоящее время версия Emacs.

Проект GNU представляет не прекращающиеся усилия со стороны Free Software Foundation для создания полного, свободно распространяемого, соответствующего POSIX вычислительного окружения. (GNU означает "GNU's not Unix".) FSF использует "GNU General Public License" (или GPL), чтобы обеспечить конечному пользователю постоянный доступ к исходному коду их программного обеспечения. Копия GPL включена для ваших ссылок (см. [GNU GENERAL PUBLIC LICENSE], page 309). GPL прилагается к исходному коду на языке Си для gawk.

Оболочка, редактор (Emacs), легко переносимые оптимизирующие C, C++ и Objective C-компиляторы, символьный отладчик и дюжины больших и малых вспомогательных средств (таких как gawk), имеются и свободно доступны. Что касается настоящего документа (начало 1997г.), то ядро операционной системы GNU ( HURD) уже выпущено, но находится еще в начальной стадии развития.

Пока операционная система GNU не будет полностью доработана, предполагается, что вы используете Linux, свободно распространяемую Unix-подобную операционную систему для 80386, DEC Alpha, Sun SPARC и других систем. Имеется много книг по Linux. Одна свободно распространяемая есть Linux Installation and Getting Started, автор Matt Welsh. Многие источники Linux свободно доступны, часто в компьютерной памяти или на CD-ROM с книгами по Linux. (Имеются три другие свободно доступные Unix-подобные операционные системы для 80386 и других систем, NetBSD, FreeBSD и OpenBSD. Все основаны на 4.4-Lite Berkeley Software Distribution, и они используют последние версии gawk для своих версий awk.)

Эта книга, которую вы читаете, теперь фактически свободна. Информация из нее свободно доступна всем, машинно-читаемый исходный код книги приходит с gawk, и каждый может взять эту книгу на копировальную машину и сделать столько копий, сколько нужно. (Не забудьте проверить разрешение на копии на странице Copyright.)

Если платите деньги за эту книгу, то вы платите фактически только за хорошую печать и обложку и издателю за его работу. Мы прилагаем усилия, чтобы сделать эти платы разумными. Большинство клиентов предпочтет иметь купленную книгу более чем в 330 страниц фотокопированного текста пачке рассыпающихся листков (не говоря уже о времени и труде, затраченными на копирование). То же самое верно для получения книги из машинно-читаемого источника; удержанная цена будет только немного больше цены за постраничную печать на лазерном принтере.

Сама это книга прошла через несколько предварительных изданий. Я начал работать над предварительным отчетом руководства по GAWK Manual, составленным Diane Close, Paul Rubin и Richard Stallman в конце 1988г. Он содержал примерно 90 страниц и коротко описывал исходную, "старую" версию awk. После существенного пересмотра первой версией руководства по GAWK стало издание 0.11 Beta в октябре 1989г. Следующее издание 0.13 вышло в декабре 1991г. К нему David Trueman, Pat Rankin и Michal Jaegermann добавили несколько глав. Это новое издание было опубликовано в FSF в виде книги в начале 1992г. После этог было несколько небольших ревизий, затем издание 0.14, вышедшее в Ноябре 1992, было опубликовано в FSF в Январе 1993г, и издание 0.16 вышло в Августе 1993г.

Издание 1.0 по Эффективному AWK-программированию представляет существенно переработанное руководство по GAWK Manual, с многими дополнительными материалами. FSF и я согласились, что теперь я являюсь главным автором. Я также чувствую, что оно нуждается в более содержательном названии. Эффективное AWK- программирование, без сомнения, будет продолжать развиваться. Электронная версия приходит с распространением gawk от FSF. Если вы обнаружите ошибку в этой книге, пожалуйста сообщите о ней! См. раздел B.7 [Обнаруженные проблемы и ошибки], стр. 292. Соответствующую информацию передавайте электронно или пишите для меня по адресу FSF.

Благодарности

В начало страницы

I would like to acknowledge Richard M. Stallman, for his vision of a better world, and for his courage in founding the FSF and starting the GNU project. The initial draft of The GAWK Manual had the following acknowledgements: Many people need to be thanked for their assistance in producing this manual. Jay Fenlason contributed many ideas and sample programs. Richard Mlynarik and Robert Chassell gave helpful comments on drafts of this manual. The paper A Supplemental Document for awk by John W. Pierce of the Chemistry Department at UC San Diego, pinpointed several issues relevant both to awk implementation and to this manual, that would otherwise have escaped us.

The following people provided many helpful comments on Edition 0.13 of The GAWK Manual: Rick Adams, Michael Brennan, Rich Burridge, Diane Close, Christopher ("Topher") Eliot, Michael Lijewski, Pat Rankin, Miriam Robbins, and Michal Jaegermann.

The following people provided many helpful comments for Edition 1.0 of Effective AWK Programming: Karl Berry, Michael Brennan, Darrel Hankerson, Michal Jaegermann, Michael Lijewski, and Miriam Robbins. Pat Rankin, Michal Jaegermann, Darrel Hankerson and Scott Deifik updated their respective sections for Edition 1.0. Robert J. Chassell provided much valuable advice on the use of Texinfo. He also deserves special thanks for convincing me not to title this book How

4 Effective AWK Programming To Gawk Politely. Karl Berry helped significantly with the TEX part of Texinfo. David Trueman deserves special credit; he has done a yeoman job of evolving gawk so that it performs well, and without bugs. Although he is no longer involved with gawk, working with him on this project was a significant pleasure.

Scott Deifik, Darrel Hankerson, Kai Uwe Rommel, Pat Rankin, and Michal Jaegermann (in no particular order) are long time members of the gawk "crack portability team." Without their hard work and help, gawk would not be nearly the fine program it is today. It has been and continues to be a pleasure working with this team of fine people. Jeffrey Friedl provided invaluable help in tracking down a number of last minute problems with regular expressions in gawk 3.0.

David and I would like to thank Brian Kernighan of Bell Labs for invaluable assistance during the testing and debugging of gawk, and for help in clarifying numerous points about the language. We could not have done nearly as good a job on either gawk or its documentation without his help.

I would like to thank Marshall and Elaine Hartholz of Seattle, and Dr. Bert and Rita Schreiber of Detroit for large amounts of quiet vacation time in their homes, which allowed me to make significant progress on this book and on gawk itself. Phil Hughes of SSC contributed in a very important way by loaning me his laptop Linux system, not once, but twice, allowing me to do a lot of work while away from home.

Finally, I must thank my wonderful wife, Miriam, for her patience through the many versions of this project, for her proof-reading, and for sharing me with the computer. I would like to thank my parents for their love, and for the grace with which they raised and educated me. I also must acknowledge my gratitude to G-d, for the many opportunities He has sent my way, as well as for the gifts He has given me with which to take advantage of those opportunities. Arnold Robbins Atlanta, Georgia February, 1997

В начало страницы

<<< Оглавление Страницы: 0  1 >>>