Home Dokumentacje Efektywne programowanie w AWK - Podręcznik użytkownika GNU awk - Przedmowa
06 | 12 | 2019
Efektywne programowanie w AWK - Podręcznik użytkownika GNU awk - Przedmowa Drukuj

Przejdź do pierwszej, poprzedniej, następnej, ostatniej sekcji, spisu treści.

 


 

%& -translate-file=il2-pl \def\fontprefix{pl} \input texinfo

"To boldly go where no man has gone before" is a Registered Trademark of Paramount Pictures Corporation.

Copyright (C) 1989, 1991, 1992, 1993, 1996-2000 Free Software Foundation, Inc.
Tytuł oryginalny: Effective AWK Programming. j

 

To jest wydanie 1.0.6 książki Efektywne programowanie w AWK;
opisuje wersję 3.0.6 (lub późniejszą) AWK w implementacji GNU.

Opublikowana przez:

Free Software Foundation
59 Temple Place -- Suite 330
Boston, MA 02111-1307 USA
Telefon: +1-617-542-5942
Fax: +1-617-542-2652
Email: Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć.
URL: http://www.gnu.org/

ISBN 1-882114-26-4

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by the Foundation.

Ilustracja na okładce: Etienne Suvasa.

 

Miriam, za dopełnianie mnie.

Chanie, za radość jaką nam przyniosłaś.

Ryfce, za wykładniczy wzrost.

Nachumowi, za dodany wymiar.

Malce, za nowy początek.

Przedmowa

Niniejsza książka uczy języka awk i jego efektywnego wykorzystania. Powinieneś być już zaznajomiony z podstawowymi poleceniami systemu poleceń, jak cat i ls,(1) oraz podstawowymi możliwościami powłoki, jak przekierowanie wejścia/wyjścia i potoki.

Implementacje języka awk dostępne są dla wielu różnych środowisk obliczeniowych. Niniejsza książka, mimo iż opisuje ogólnie język, omawia także konkretną implementację awk o nazwie gawk (co oznacza "GNU Awk"). gawk działa na szerokim spektrum systemów uniksowych, począwszy od komputerów PC opartych na 80386, po wielkoskalowe systemy, jak maszyny Cray. gawk przeniesiono również na MS-DOS i OS/2 z PC, mikrokomputery Atari i Amiga, oraz VMS.

Historia awk i gawk

Nazwa awk pochodzi od inicjałów jego projektantów: Alfreda V. Aho, Petera J. Weinbergera i Briana W. Kernighana. Pierwotna wersja awk została napisana w 1977 roku w AT&T Bell Laboratories. W 1985 nowa wersja uczyniła ten język programowania potężniejszym, wprowadzając funkcje definiowane przez użytkownika, wiele strumieni wejściowych i obliczane wyrażenia regularne. Ta nowa wersja stała się ogólnie dostępna z Unix System V Release 3.1. Wersja w System V Release 4 dodała kilka nowych cech jak również oczyściła zachowanie w niektórych "ciemnych kątach" języka. Późniejsza specyfikacja awk w standardzie POSIX Command Language and Utilities objaśniła język w oparciu o opinie zarówno projektantów gawk, jak i projektantów pierwotnego awk z Bell Labs.

Implementacja GNU, gawk, została napisana w 1986 przez Paula Rubina i Jay Fenlason, z poradą Richarda Stallmana. John Woods również wniósł część kodu. W 1988 i 1989 David Trueman z pomocą Arnolda Robbinsa, gruntownie przeredagowali gawk w kierunku zgodności z nowszym awk. Obecny rozwój koncentruje się na usuwaniu błędów, poprawie efektywności, zgodności ze standardami i, od czasu do czasu, nowych cechach.

Projekt GNU i ta książka

Free Software Foundation (FSF) jest organizacją non-profit, której celem jest tworzenie i rozpowszechnianie swobodnie dostępnego oprogramowania. Została założona przez Richarda M. Stallmana, autora oryginalnego edytora Emacs. GNU Emacs jest obecnie najszerzej używaną wersją Emacsa.

Projekt GNU jest nieustającym wysiłkiem ze strony Free Software Foundation by stworzyć pełne, swobodnie dostępne, zgodne z POSIX środowisko obliczeniowe. (GNU oznacza "GNU's not Unix" -- GNU to nie Unix.) W celu zagwarantowania, że kod źródłowy ich oprogramowania będzie zawsze dostępny dla użytkownika, FSF stosuje "Powszechną Licencję Publiczną GNU" ("GNU General Public License" lub GPL). Dla informacji czytelnika dołączono tu egzemplarz GPL (zob. 18. Powszechna Licencja Publiczna GNU). GPL ma zastosowanie w odniesieniu do kodu źródłowego gawk w języku C.

Zostały ukończone i są swobodnie dostępne: powłoka, edytor (Emacs), wysoce przenośne optymalizujące kompilatory C, C++ i C-obiektowego, debuger symboliczny i dziesiątki wielkich i małych narzędzi (jak gawk). W momencie pisania (początek 1997) tej książki, jądro systemu operacyjnego GNU (HURD), zostało już wydane, ale wciąż jest na wczesnym etapie rozwoju.

Dopóki system operacyjny GNU nie zostanie pełniej rozwinięty, powinieneś rozważyć używanie Linuksa, swobodnie dostępnego, uniksopodobnego systemu operacyjnego na 80386, DEC Alpha, Sun SPARC i inne systemy. Istnieje wiele książek o Linuksie. Jedną ze wolnodostępnych jest Linux Installation and Getting Started, Matta Welsha. Dostępnych jest wiele dystrybucji Linuksa, często w sklepach komputerowych lub na CD-ROM w komplecie z książkami o Linuksie. (Istnieją trzy inne swobodnie dostępne, uniksopodobne systemy operacyjne na 80386 i inne systemy, NetBSD, FreeBSD i OpenBSD. Wszystkie oparte są o 4.4-Lite Berkeley Software Distribution i wykorzystują najświeższe wersje gawk jako swoje wersje awk.)

Książka, którą teraz czytasz jest w rzeczywistości darmowa. Zawarte w niej informacje są swobodnie dostępne dla każdego. Nadający się do przetwarzania automatycznego kod źródłowy tej książki dostarczany jest z gawk, a każdy może wziąć ją na kopiarkę i zrobić sobie tyle kopii ile zechce. (Poświęć chwilę na sprawdzenie zezwolenia na kopiowanie na stronie z prawami autorskimi.)

Jeżeli zapłaciłeś za tę książkę, to faktycznie zapłaciłeś za jej ładne wydrukowanie i oprawienie, i pokrycie związanych z jej produkcją kosztów wydawcy. Dołożyliśmy starań, by utrzymać te koszty na rozsądnym poziomie; większość osób woli oprawioną książkę niż ponad 330 stron zkserowanych stron, które następnie muszą być trzymane w skoroszycie (nie wspominając o czasie i pracy włożonej w kopiowanie). To samo dotyczy tworzenia tej książki ze źródła nadającego się do automatycznego przetworzenia; cena detaliczna jest tylko nieco wyższa od kosztu wydrukowania jej na drukarce laserowej.

Sama książka przeszła kilka poprzednich, wstępnych wydań. Jesienią 1988 rozpocząłem pracę od wstępnego szkicu podręcznika The GAWK Manual, Diany Close, Paula Rubin i Richarda Stallmana. Miał on około 90 stron, i ledwie opisywał pierwotną, "starą" wersję awk. Po znaczących korektach, pierwszą wersją The GAWK Manual, jaką wydano była Edycja 0.11 Beta w październiku 1989. Następnie podręcznik przeszedł bardziej znaczne zmiany w Edycji 0.13 z grudnia 1991. David Trueman, Pat Rankin i Michal Jaegermann wnieśli swoje sekcje do podręcznika w Edycji 0.13. Została ona opublikowana przez FSF w formie drukowanej książki na początku 1992. Od tej pory było kilka pomniejszych wydań, by wymienić Edycję 0.14 z listopada 1992, opublikowaną przez FSF w styczniu 1993, i Edycję 0.16 z sierpnia 1993.

Edycja 1.0 Efektywne programowanie w AWK jest w istotny sposób ponownym opracowaniem The GAWK Manual, z dużą ilością dodatkowego materiału. FSF i ja zgodziliśmy się, że teraz ja jestem głównym autorem. Czułem też, że potrzebuje ona bardziej opisowego tytułu.

Efektywne programowanie w AWK będzie bez wątpienia nadal się rozwijać. Elektroniczna wersja dołączana jest do dystrybucji gawk z FSF. Jeśli znajdziesz błąd w tej książce, proszę powiadom o nim! Zob. B.7. Zgłaszanie problemów i błędów, gdzie podano informacje na temat elektronicznego przesyłania zgłoszeń o błędach, albo napisz do mnie w zastępstwie FSF.

Podziękowania

Chciałbym podziękować Richardowi M. Stallmanowi, za jego wizję lepszego świata, i za jego odwagę w założeniu FSF i rozpoczęciu projektu GNU.

Początkowy szkic podręcznika The GAWK Manual zawierał następujące podziękowania:

Podziękowanie za pomoc w stworzeniu tego podręcznika należy się wielu ludziom. Jay Fenlason wniósł wiele pomysłów i przykładowych programów. Richard Mlynarik i Robert Chassell dali pomocne komentarze do wersji roboczych tego podręcznika. Dokument A Supplemental Document for awk autorstwa Johna W. Pierce'a z Wydziału Chemii UC w San Diego, zwrócił uwagę na kilka kwestii związanych zarówno z implementacją awk jak i niniejszym podręcznikiem, które inaczej by nam umknęły.

Niżej wymienieni ludzie dostarczyli wielu pomocnych komentarzy dotyczących Edycji 0.13 podręcznika The GAWK Manual: Rick Adams, Michael Brennan, Rich Burridge, Diane Close, Christopher ("Topher") Eliot, Michael Lijewski, Pat Rankin, Miriam Robbins i Michal Jaegermann.

Poniższe osoby dostarczyły wielu pomocnych komentarzy dotyczących Edycji 1.0 podręcznika Efektywne programowanie w AWK: Karl Berry, Michael Brennan, Darrel Hankerson, Michal Jaegermann, Michael Lijewski i Miriam Robbins. Pat Rankin, Michal Jaegermann, Darrel Hankerson i Scott Deifik zaktualizowali własne odpowiednie sekcje w Edycji 1.0.

Robert J. Chassell dostarczył bardzo wartościowych porad dotyczących posługiwania się Texinfo. Należą mu się także specjalne podziękowania za przekonanie mnie bym nie zatytułował tej książki How To Gawk Politely ("Jak poprawnie gawkować"). Karl Berry znacząco pomógł przy TeX-owej części Texinfo.

Specjalne podziękowanie należy się Davidowi Truemanovi: był prawdziwym strażnikiem rozwoju gawk, dzięki niemu program działa dobrze i bez błędów. Mimo iż nie jest już zaangażowany w prace przy gawk, praca z nim przy tym projekcie była prawdziwą przyjemnością.

Scott Deifik, Darrel Hankerson, Kai Uwe Rommel, Pat Rankin i Michal Jaegermann (niekoniecznie w tej kolejności) są długoletnimi członkami "zespołu łamaczy d/s przenośności" gawk. Bez ich ciężkiej pracy i wsparcia gawk nie byłby nawet w przybliżeniu tak wysokiej jakości programem jak jest obecnie. Praca z tym zespołem wspaniałych ludzi była i jest przyjemnością.

Jeffrey Friedl wniósł nieocenioną pomoc przy wyłapywaniu wielu problemów, jakie pojawiły się ostatniej chwili w wyrażeniach regularnych gawk 3.0.

David i ja chcielibyśmy podziękować Brianowi Kernighanowi z Bell Labs za nieocenione wsparcie podczas testowania i debugowania gawk oraz za pomoc w wyjaśnieniu mnóstwa kwestii dotyczących języka. Bez jego pomocy nie zdołalibyśmy wykonać nawet w przybliżeniu tak dobrej roboty, zarówno przy gawk jak i dokumentacji.

Chciałbym podziękować Marshallowi i Elaine Hartholz z Seattle oraz Dr. Bertowi i Ricie Schreiber z Detroit za długie okresy spokojnych wakacji w ich domach, które pozwoliły mi na dokonanie znaczącego postępu w pracy nad tą książką i nad samym gawk. Phil Hughes z SSC wniósł swój wkład w bardzo istotny sposób, pożyczając mi swojego laptopa z systemem Linux, nie tylko jednokrotnie, ale dwa razy, umożliwiając mi wykonanie mnóstwa pracy gdy byłem poza domem.

Na koniec, muszę podziękować swojej wspaniałej żonie, Miriam, za cierpliwość podczas wielu wersji tego projektu, za korekty i za dzielenie się mną z komputerem. Chciałbym podziękować swoim rodzicom za ich miłość i za dobroć, w której mnie wychowali i wykształcili. Muszę też wyrazić swą wdzięczność B-gu, za wiele okazji jakie zesłał na mojej drodze i za dary jakie mi ofiarował, bym mógł z tych okazji skorzystać.

Arnold Robbins
Atlanta, Georgia
Luty 1997

Od tłumacza

Niniejszy przekład powstał w ramach Projektu Tłumaczenia Manuali. Zgłoszenia błędów, komentarze i sugestie proszę przesyłać na listę dyskusyjną Projektu: Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć. lub ewentualnie do autora tłumaczenia.

Polską wersję Powszechnej Licencji Publicznej GNU (GNU GPL) można znaleźć na http://www.linux.org.pl/ oraz http://gnu.org.pl/. Proszę pamiętać, że pod względem prawnym obowiązująca jest wyłącznie oryginalna, angielska wersja. Stanowisko FSF w tej kwestii wyjaśniono na stronie http://www.gnu.org/copyleft/copyleft.html.

W.Kotwica ( Adres poczty elektronicznej jest chroniony przed robotami spamującymi. W przeglądarce musi być włączona obsługa JavaScript, żeby go zobaczyć. )

Rozpowszechnianie

To jest nieoficjalne tłumaczenie warunków rozpowszechniania na język polski. Nie zostało ono opublikowane przez Free Software Foundation i pod względem prawnym nie stanowi warunków rozpowszechniania -- ustanawia je wyłącznie oryginalny tekst angielski. Jednak tłumacz ma nadzieję, że pomoże ono lepiej zrozumieć warunki rozpowszechniania osobom mówiącym po polsku.

This is an unofficial translation of the distribution terms into Polish language. It was not published by the Free Software Foundation, and does not legally state the distribution terms--only the original English text does that. However, the translator hopes that it will help Polish language speakers understand distribution terms better.

Zezwala się na tworzenie i rozpowszechnianie wiernych kopii tego podręcznika, pod warunkiem, że na wszystkich kopiach zostanie zachowana informacja o prawach autorskich i niniejsze zezwolenie.

Zezwala się na kopiowanie i rozpowszechnianie zmienionych wersji tego podręcznika na warunkach jak dla wiernych kopii, pod warunkiem, że cała praca pochodna będzie rozpowszechniana na warunkach zezwolenia identycznego jak niniejsze.

Zezwala się na kopiowanie i rozpowszechnianie tłumaczeń tego podręcznika na inny język, pod wyżej podanymi warunkami dla zmienionych wersji, za wyjątkiem tego, że niniejsze zezwolenie może być ustanowione w tłumaczeniu zaakceptowanym przez Fundację.

 


Przejdź do pierwszej, poprzedniej, następnej, ostatniej sekcji, spisu treści.

 
Linki sponsorowane

W celu realizacji usług i funkcji na witrynach internetowych ZUI "ELPRO" stosujemy pliki cookies. Korzystanie z witryny bez zmiany ustawień dotyczących plików cookies oznacza, że będą one zapisywane w urządzeniu wyświetlającym stronę internetową. Więcej szczegółów w Polityce plików cookies.

Akceptuję pliki cookies z tej witryny.