awk

Awk

Informacja
Opracowany przez Alfred Aho , Brian Kernighan i Peter J. Weinberger
Pierwsza wersja 1979
Ostatnia wersja IEEE Std 1003.1-2008
Kaucja openbsd.su/src/usr.bin/awk
Rodzaj Narzędzie UNIX ( d )
Język programowania oparty na danych ( d )
Język skryptowy
Programowanie proceduralne Programowanie
oparte na danych ( en )

awk - nazwany na cześć trzech twórców, Alfreda Aho , Petera Weinbergera i Briana Kernighana - jest opartym na wierszach językiem przetwarzania plików płaskich , dostępnym w większości systemów Unix i Windows z MinGW , Cygwin lub Gawk . Jest używany głównie do manipulacji plikami tekstowymi w celu wykonania złożonych operacji wyszukiwania, zastępowania i przekształcania.

Prezentacja

Awk jest najczęściej używany do tworzenia plików tekstowych o określonych specyfikacjach (wymiany między różnymi heterogenicznymi systemami informacyjnymi). Jest również używany jako pliki analizatora ( parsera ) XML lub pliki tekstowe do generowania poleceń SQL z wyodrębnionych danych. Wreszcie, może być używany do złożonych operacji obliczeniowych i formatowania surowych danych w celu tworzenia tabel statystycznych.

Rozróżniamy awk, oryginalne polecenie, od nowego awk (nawk), który pojawił się nieco później na rynku. Implementacje GNU awk są w rzeczywistości nowymi awk . Polecenie awk zwykle znajduje się w / usr / bin w Uniksie, ale niektóre systemy GNU / Linux umieszczają je w / bin. Wymusza to typ shebang,#!/usr/bin/env awk -f aby zapewnić maksymalną przenośność skryptów awk.

Działa jako programowalny filtr, pobierając serię linii jako dane wejściowe (jako pliki lub bezpośrednio przez standardowe wejście) i zapisując na standardowe wyjście, które może zostać przekierowane do innego pliku lub programu. Program Awk składa się z trzech odrębnych bloków, które mogą, ale nie muszą być używane do przetwarzania pliku (przetwarzanie wstępne, przetwarzanie, przetwarzanie końcowe). Awk czyta dane wejściowe wiersz po wierszu, a następnie wybiera (lub nie) wiersze do przetworzenia za pomocą wyrażeń regularnych (i ewentualnie numerów wierszy). Po wybraniu linii jest ona dzielona na pola zgodnie z separatorem wejściowym oznaczonym w programie awk symbolem FS (który domyślnie odpowiada spacji lub znaku tabulacji). Wtedy w zmiennych dostępne są różne pola: 1 zł (pierwsze pole), 2 zł (drugie pole), 3 zł (trzecie pole),…, $ NF (ostatnie pole).

„Awk” to także rozszerzenie nazwy pliku używane dla skryptów napisanych w tym języku (rzadko używane).

Składnia jest inspirowana C  :
awk [options] [programme] [fichier]
gdzie struktura programu jest następująca:
'motif1 { action1 } motif2 { action2 } …'
Każda linia pliku jest kolejno porównywana z różnymi wzorcami (najczęściej wyrażeniami regularnymi i globalnie wyrażeniem logicznym) oraz działaniem pierwszego wzorca zwracającego prawdziwą wartość jest wykonywany. Jeśli nie zostanie przyjęty żaden powód, program przechodzi do przetwarzania następnego wiersza.

Niektóre opcje:

Opis techniczny

Plik jest podzielony na wiersze ( rekordy w języku angielskim), które są podzielone na pola ( pola w języku angielskim)

Separatory wejścia-wyjścia są przechowywane w zmiennych i można je zmienić:

Mamy dwie specjalne maski:

Aby zdefiniować interwał, używamy przecinka w następujący sposób:

Kilka funkcji jest już zaimplementowanych:

Mamy struktury kontrolne. Składnia pochodzi bezpośrednio z C:

W porównaniu do C istnieje kilka rozszerzeń:

Kilka przykładów

Realizacja

Istnieje wiele programów, które używają składni oryginalnego awk, oto najbardziej znane:

Zobacz też

Bibliografia

Powiązane artykuły

Linki zewnętrzne