• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • AWK



    Podstrony: 1 [2] [3] [4]
    Przeczytaj także...
    Perl – interpretowany język programowania autorstwa Larry’ego Walla początkowo przeznaczony głównie do pracy z danymi tekstowymi, obecnie używany do wielu innych zastosowań. Wzorowany na takich językach jak C, skryptowe: sed, awk i sh oraz na wielu innych.Wyrażenia regularne (ang. regular expressions, w skrócie regex lub regexp) – wzorce, które opisują łańcuchy symboli. Teoria wyrażeń regularnych jest związana z teorią języków regularnych. Wyrażenia regularne mogą określać zbiór pasujących łańcuchów, mogą również wyszczególniać istotne części łańcucha.

    AWK – interpretowany język programowania, którego główną funkcją jest wyszukiwanie i przetwarzanie wzorców w plikach lub strumieniach danych. 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.

    AWK jest językiem, który w znacznym stopniu wykorzystuje tablice asocjacyjne, stringi i wyrażenia regularne. Nazwa języka pochodzi od pierwszych liter nazwisk jego autorów Alfreda V. Aho, Petera Weinbergera i Briana Kernighana. Bywa zapisywana małymi literami, odczytywana jako jedno słowo awk, wymawiana jak pierwsza sylaba w awkward.

    Plik (ang. file) – uporządkowany zbiór danych o skończonej długości, posiadający szereg atrybutów i stanowiący dla użytkownika systemu operacyjnego całość. Nazwa pliku nie jest częścią tego pliku, lecz jest przechowywana w systemie plików.Shebang (ang. shebang line, bang path) – "magiczny" znak #! na początku pliku umożliwiający uruchomienie go jako skrypt, stosowany w Uniksie i systemach uniksopodobnych. Tekst następujący po wykrzykniku aż do pierwszej spacji to ścieżka do interpretera, który ma zostać użyty do wykonania skryptu. Np.:

    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 SVR4.

    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.

    Sed (stream editor) – edytor strumieniowy zawarty w systemach unixowych, służący do przetwarzania plików tekstowych. Łączy w sobie prostotę oraz szeroki wachlarz możliwości. Znajduje też zastosowanie przy pisaniu programów konwertujących. Jest on językiem programowania zupełnym w sensie Turinga.Library of Congress Control Number (LCCN) – numer nadawany elementom skatalogowanym przez Bibliotekę Kongresu wykorzystywany przez amerykańskie biblioteki do wyszukiwania rekordów bibliograficznych w bazach danych i zamawiania kart katalogowych w Bibliotece Kongresu lub u innych komercyjnych dostawców.

    Struktura programów AWK[ | edytuj kod]

    „AWK jest językiem służącym do przetwarzania plików tekstowych. Plik jest traktowany jako ciąg rekordów, przy czym domyślnie rekordem jest każdy wiersz. Każda linia jest podzielona na pola, więc można traktować pierwsze pole linii jako pierwsze słowo, drugie pole jako drugie słowo itd. Program AWK składa się z sekwencji instrukcji wzorzec-akcja. AWK czyta wejście linia po linii. Każda linia jest przeszukiwana pod kątem wzorców występujących w programie i dla każdego pasującego wzorca wykonywana jest akcja z nim skojarzona.” – Alfred V. Aho

    System operacyjny (ang. Operating System, skrót OS) – oprogramowanie zarządzające systemem komputerowym, tworzące środowisko do uruchamiania i kontroli zadań użytkownika.Unix Time-Sharing System (pisane również jako UNIX, choć nie jest to skrót – nazwa „UNIX” jest kalamburem określenia Multics, który był wzorem dla Uniksa) – system operacyjny rozwijany od 1969 r. w Bell Labs (UNIX System Laboratories, USL) przez Dennisa Ritchie i Kena Thompsona. W latach 70. i 80. zdobył bardzo dużą popularność, co zaowocowało powstaniem wielu odmian i implementacji. Część z nich, w szczególności Linux oraz OS X, jest w użyciu do dziś. UNIX jest zarejestrowanym znakiem towarowym The Open Group.

    Program AWK składa się z sekwencji instrukcji wzorzec-akcja oraz opcjonalnych definicji funkcji.

    wzorzec { instrukcje akcji }
    function nazwa(lista parametrów) { instrukcje }
    

    gdzie wzorzec to zwykle jakieś wyrażenie, a akcja – lista komend. Wejście dzielone jest na rekordy, domyślnie oddzielone znakiem nowej linii. 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. Domyślną akcją jest wypisanie rekordu.

    Tablica asocjacyjna (tablica skojarzeniowa, mapa, słownik, ang. associative array, map, dictionary) – nazwa dla powszechnie stosowanego w informatyce abstrakcyjnego typu danych, który przechowuje pary (unikatowy klucz, wartość) i umożliwia dostęp do wartości poprzez podanie klucza.Wiersz poleceń (ang. Command Line Interface, CLI), to jeden z najczęściej spotykanych sposobów interakcji człowieka z komputerem. Inne przykłady to interfejs tekstowy oraz interfejs graficzny.

    Komendy i składnia[ | edytuj kod]

    Na komendy AWK składają się wywołania funkcji, nadawanie wartości zmiennym, obliczenia lub jakaś kombinacja wymienionych zadań. AWK posiada wbudowane wsparcie dla wielu funkcji. Niektóre wersje pozwalają na dynamiczne linkowanie bibliotek, co umożliwia korzystanie z jeszcze większej liczby funkcji. Dla uproszczenia nawiasy klamrowe ({}) w poniższych przykładach zostaną pominięte.

    Biblioteka Narodowa Francji (fr. Bibliothèque nationale de France, BnF) – francuska biblioteka narodowa, znajdująca się w Paryżu. Przewidziana jest jako repozytorium dla wszystkich materiałów bibliotecznych, wydawanych we Francji. Obecnym dyrektorem Biblioteki jest Bruno Racine.Computerworld – tygodnik menedżerów i informatyków, ukazujący się od 1991 roku, poświęcony technologiom informatycznym oraz zarządzaniu. Wydawany przez wydawnictwo IDG Poland SA. Jednocześnie portal wiedzy związany z informatyką. Oprócz działalności wydawniczej i konferencyjnej, redakcja Computerworld jest organizatorem konkursu Lider Informatyki oraz zestawienia największych firm informatycznych TOP 200.

    print[ | edytuj kod]

    Polecenie print jest używane do wypisywania tekstu. Wyjście jest zawsze zakończone predefiniowanym separatorem rekordów (output record separator (ORS)), który domyślnie jest znakiem nowej linii. Najprostsze zastosowanie polecenia print to: print Wyświetla zawartość obecnego rekordu.

    W AWK rekordy rozbijane są na pola, które można wyświetlić osobno: print $1 Wyświetla pierwsze pole obecnego rekordu. print $1, $3 Wyświetla pierwsze i trzecie pole obecnego rekordu oddzielone separatorem pola (output field separator (OFS)) – domyślnie spacją.

    Choć zapis pól ($X) może kojarzyć się z zapisem określającym zmienne (jak np. w perlu), to jednak określa pola bieżącego rekordu. Ponadto $0 odnosi się do całego rekordu, więc "print" oraz "print $0" mają takie samo działanie.

    W systemach Unix oraz w systemach uniksopodobnych polecenia są często programami uruchamianymi z wiersza poleceń powłoki systemowej. Często różne powłoki mają dodatkowo wbudowane własne implementacje niektórych poleceń; np. zawierają wersję polecenia dostępnego jako /bin/echo. To, która wersja polecenia będzie wykonana domyślnie zależy od tego, która powłoka jest używana oraz od konfiguracji systemu. Podstawową powłoką większości systemów Unix jest Bourne shell dostępna zwykle jako /bin/sh lub /usr/bin/sh, jednak częściej w pracy interaktywnej używa się wywodzących się z niej, bardziej rozbudowanych powłok takich jak bash, Korn shell, Z shell, czy też spokrewnionych C shell i tcsh, z nowszych popularność zyskuje fish. Większość powłok może być także używana jako języki skryptowe, co pozwala użytkownikowi na wykonywanie rozbudowanych poleceń wykorzystujących wiele programów oraz pisanie skryptów automatyzujących często wykonywane czynności. Za pomocą mechanizmów potoków i kolejek można w łatwy sposób przekazywać dane pomiędzy wieloma programami tworząc z nich bardziej skomplikowane narzędzia.Hello world – program, którego jedynym celem jest wypisanie na standardowym wyjściu napisu "Hello World!" lub podobnego.

    print pozwala również wyświetlić wynik obliczeń lub wywołania funkcji. Np.

    print 3+2
    print foobar(3)
    print foobar(zmienna)
    print sin(3-2)
    

    Wyjście można również przekierować do pliku:

    print "wyrażenie" > "nazwa pliku"
    

    lub do innego polecenia przez użycie potoku:

    print "wyrażenie" | "polecenie"
    

    Zmienne i tablice[ | edytuj kod]

    Zmienne[ | edytuj kod]

    Zmienne AWK są dynamiczne — zaczynają istnieć, gdy są po raz pierwszy użyte. Nazwy zmiennych mogą zawierać znaki z zakresu [A-Za-z0-9_], lecz nie mogą być słowami kluczowymi. Zmienne oraz pola mogą być liczbami (zmiennoprzecinkowymi), łańcuchami lub jednym i drugim naraz. Interpretacja wartości zmiennej zależy od kontekstu. Jeśli jest użyta w wyrażeniu numerycznym, jest interpretowana jako liczba. Natomiast jeśli jest użyta w wyrażeniu łańcuchowym — jest traktowana jak łańcuch.

    Tekstowy typ danych (ang. String) – typ danych służący do przechowywania ciągu znaków (zmiennych łańcuchowych).Język programowania – zbiór zasad określających, kiedy ciąg symboli tworzy program komputerowy oraz jakie obliczenia opisuje.

    AWK posiada tablice jednowymiarowe. Symulowane mogą być również tablice wielowymiarowe. Podczas działania programu ustawianych jest kilka predefiniowanych zmiennych opisanych niżej.

    Zmienne wbudowane[ | edytuj kod]

    Zmienne wbudowane w AWK to m.in. zmienne określające pola: $1, $2 itd. Zwracają one wartość lub tekst przechowywany aktualnie w określonym polu rekordu. Poza nimi AWK posiada również inne zmienne:

    Tablice[ | edytuj kod]

    Tablice są indeksowane wyrażeniem ujętym w nawiasy kwadratowe (). Jeśli wyrażenie jest listą wyrażeń (wyrażenie, wyrażenie, ...), to indeks tablicy jest sklejany z wartości (łańcuchowych) każdego wyrażenia, oddzielonych wartością zmiennej SUBSEP. Jest tak dlatego, że AWK posiada wyłącznie tablice asocjacyjne, zaś klucze numeryczne pamiętane są jako łańcuchy.

    Powłoka systemowa (ang. shell) – program komputerowy pełniący rolę pośrednika pomiędzy systemem operacyjnym lub aplikacjami a użytkownikiem, przyjmując jego polecenia i "wyprowadzając" wyniki działania programów. To pośrednictwo nie jest obowiązkowe (programy mogą być bardziej "samodzielne").Potok (ang. pipe) – jeden z mechanizmów komunikacji międzyprocesowej umożliwiający wymianę danych pomiędzy dwoma procesami. Odbywa się to najczęściej poprzez połączenie standardowego wyjścia jednego procesu ze standardowym wejściem drugiego.

    Symulowanie tablic wielowymiarowych polega na sklejaniu poszczególnych indeksów w unikalny łańcuch. Na przykład:

    i = "A" ; j = "B" ; k = "C"
    x[i, j, k] = "hello, world\n"
    

    przypisuje łańcuch "hello, world\n" elementowi tablicy x, o indeksie będącym łańcuchem "A\034B\034C".

    Jeśli tablica posiada wielokrotne indeksy, można użyć konstrukcji (i, j) in array. Element można skasować z tablicy przy użyciu polecenia delete. Poleceniem delete można się też posłużyć do skasowania całej zawartości tablicy, przez podanie jej nazwy bez indeksu.

    Alfred Vaino Aho (ur. 9 sierpnia 1941, Timmins, Ontario) - kanadyjski informatyk, fizyk i elektrotechnik najbardziej znany ze swoich teoretycznych prac nad językami programowania, kompilatorami, teorią automatów i algorytmiką, oraz książek poświęconych sztuce programowania komputerów. yes jest Uniksową komendą, która zwraca twierdzącą odpowiedź lub podany w argumencie ciąg znaków. Robi to ciągle aż do zakończenia procesu.

    Funkcje[ | edytuj kod]

    Funkcje są wykonywane po wywołaniu ich z wyrażeń występujących we wzorcach lub akcjach. Definicja funkcji składa się ze słowa kluczowego function, jej nazwy, argumentów i ciała. Poniżej znajduje się przykład funkcji:

    function dodaj_siedem (liczba) {
      return liczba + 7
    }
    

    Tę funkcję można wywołać w następujący sposób:

    print dodaj_siedem(51)     # zwraca 58
    

    Między nazwą funkcji, a nawiasem otwierającym można wstawić spację jedynie podczas jej deklaracji – w wywołaniu nawias musi stać bezpośrednio po nazwie funkcji. Ma to na celu zapobieżenie niejednoznaczności składni z operatorem konkatenacji (łączenia). Ograniczenie to nie odnosi się do funkcji wbudowanych.

    Biblioteka (w informatyce) – zbiór klas, funkcji (i ew. innych konstrukcji programistycznych), z których korzystają różne programy.wc (akronim od word count) – uniksowe narzędzie do liczenia słów, znaków, linii lub bajtów w pliku lub potoku. W GNU/Linuksie jest częścią pakietu GNU Coreutils.

    Funkcje mogą posiadać zmienne lokalne. Ich nazwy dodawane są na końcu listy argumentów w definicji funkcji. Jednak ich wartości powinno się pomijać wywołując daną funkcję. Zazwyczaj przed deklaracją zmiennych lokalnych dodaje się kilka białych znaków, by wskazać miejsce, w którym kończą się argumenty funkcji i zaczynają zmienne lokalne.

    SUDOC (fr. Système Universitaire de Documentation, pol. Uniwersytecki System Dokumentacji) – centralny katalog informacji bibliograficznej francuskiego szkolnictwa wyższego.man – narzędzie do wyświetlania stron pomocy man, stosowane w systemach Unix i uniksopodobnych. Nazwa jest skrótem od ang. Manual – instrukcja obsługi.

    Zamiast słowa function można używać słowa funct.

    Operatory[ | edytuj kod]

    Operatory w AWK, w kolejności malejącego priorytetu, to:

    Podstrony: 1 [2] [3] [4]




    Warto wiedzieć że... beta

    System V (SysV) - nazwa systemu UNIX rozwijanego w Bell Labs (Unix System Laboratories, USL) firmy AT&T. Nazwą tą określa się komercyjne wersje Uniksa wydawane przez AT&T począwszy od 1983 roku.
    Znaki niedrukowalne (znaki kontrolne, kody sterujące) – wszystkie znaki występujące w treści tekstu zapisanego cyfrowo (komputerowo), których nie widać na ekranie monitora i w druku. Są to zarówno znaki wprowadzane przez osobę piszącą (wprowadzane z klawiatury symbole spacji, entera, tabulatora oraz inne kody wstawiane zazwyczaj kombinacjami klawiszy), jak również znaki wstawiane do tekstu automatycznie przez oprogramowanie do edycji (znaki dzielenia wyrazów, zakończenia linii, końca strony itp.).
    Gemeinsame Normdatei (GND) – kartoteka wzorcowa, stanowiąca element centralnego katalogu Niemieckiej Biblioteki Narodowej (DNB), utrzymywanego wspólnie przez niemieckie i austriackie sieci biblioteczne.

    Reklama

    Czas generowania strony: 0.026 sek.