|
|||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||
AWK jest interpretowanym językiem programowania, którego główną funkcją jest wyszukiwanie i przetwarzanie wzorców. Jest także nazwą programu początkowo dostępnego dla systemów operacyjnych będących pochodnymi UNIX-a, obecnie także na inne platformy. Nazwa języka pochodzi od pierwszych liter nazwisk jego autorów Alfreda V. Aho, Petera Weinbergera i Briana Kernighana i czasami jest zapisywana małymi literami oraz odczytywana jako jedno słowo awk. Definicja języka AWK jest zawarta w POSIX 1003.2 Command Language And Utilities Standard. Wersja ta jest z kolei oparta na opisie z The AWK Programming Language, napisanym przez Aho, Weinbergera i Kernighana, z dodatkowymi właściwościami, zdefiniowanymi w wersji awk z SysVR4. W wierszu poleceń podaje się opcje dla awk, tekst programu (jeśli nie podano go poprzez opcję -f lub --file) i wartości, które mają być udostępnione w predefiniowanych zmiennych ARGC i ARGV. edytuj Wywołanie programu AWKProgram AWK składa się z sekwencji instrukcji wzorzec-akcja oraz opcjonalnych definicji funkcji.
Tekst programu czytany jest tak, jakby wszystkie pliki programu zostały połączone ze sobą w całość, przy czym pierwszeństwo mają pliki podane jako argumenty polecenia. Przydaje się to do budowania bibliotek funkcji AWK, bez konieczności włączania ich do każdego nowego programu AWK, który z nich korzysta. Umożliwia to również łączenie funkcji bibliotecznych z programami z wiersza poleceń. Zmienna środowiskowa AWKPATH określa ścieżkę przeszukiwania, używaną do znajdowania plików źródłowych podanych w opcji -f. Jeśli zmienna ta nie istnieje, domyślną ścieżką staje się ".:/usr/local/share/awk". (Faktyczny katalog może być różny, zależnie od tego jak skompilowano i zainstalowano awk). Jeśli nazwa pliku, podana opcji -f zawiera znak "/", nie jest dokonywane żadne przeszukiwanie ścieżki. Program AWK wykonywany jest w następującej kolejności. Najpierw inicjalizowane są zmienne, podane w opcjach -v. Następnie program kompilowany jest do postaci wewnętrznej. Potem wywoływany jest kod, zawarty w blokach BEGIN (jeśli istnieją), a następnie odczytywane są pliki, podane w tablicy ARGV. Jeśli nie podano takich nazw plików, awk odczytuje standardowe wejście. Jeśli nazwa pliku w wierszu poleceń ma postać var=val, to jest traktowana jako inicjalizacja zmiennej. Zmienna var uzyska wartość val (dzieje się to po uruchomieniu każdego bloku BEGIN). Ten sposób inicjalizowania zmiennych najbardziej przydaje się do dynamicznego nadawania wartości zmiennym, których AWK używa do określania sposobu, w jaki wejście rozbijane jest na pola i rekordy. Jest też użyteczny do kontroli stanu, jeśli zachodzi potrzeba wielokrotnego czytania danego pliku danych. Jeśli wartość konkretnego elementu ARGV jest pusta (""), to awk ją pomija. Dla każdego rekordu wejścia awk dokonuje porównania, sprawdzając czy odpowiada on jakiemuś wzorcowi z programu AWK. Jeśli wzorzec będzie odpowiadał rekordowi, zostanie wykonana związana z nim akcja. Wzorce są sprawdzane w kolejności ich pojawienia się w programie. Na koniec, gdy wyczerpane zostanie całe wejście, awk wywołuje kod zawarty w bloku END. edytuj Zobacz teżedytuj Linki zewnętrznewieloparadygmatowe: Ada • C++ • Common Lisp • D • Fortran • Icon • JavaScript • Nemerle • Perl • Python • Ruby • Snobol proceduralne i strukturalne: AWK • C • COBOL • Forth • Modula-2 • Oberon • Pascal • PL/SQL • Rey • REXX • Lib Sh obiektowe: C# • Eiffel • Java • Object Pascal • Objective-C • PHP • Smalltalk funkcyjne: Erlang • F# • Haskell • Lisp • ML • Ocaml • Scheme inne: ABAP • Asembler • C-- • GAUSS • Lustre • MCPL • SAS 4GL • SQL • Visual Basic • VB.NET • occam • QCL ezoteryczne: INTERCAL • Brainfuck • BeFunge • Unlambda • Malbolge • Whitespace • FALSE • HQ9+ • Shakespeare • Whirl • Ook historyczne: ALGOL • APL • BASIC • Clipper • JAS • Lisp • MUMPS • PLAN • PL/I • PL/M • SAKO • SAS (asembler) • Simula |
| All Right Reserved © 2007, Designed by Stylish Blog. |