AWK to skryptowy (interpretowany) język programowania, przeznaczony głównie do przetwarzania tekstów.
Stwórzmy plik tekstowy o następującej treści:
Asia Nowak
Kasia Kowalska
Basia Nijaka
Zosia Beznazwiska
Następnie utwórzmy skrypt skrypt.awk (rozszerzenie pliku dowolne, Linux nie zwraca na to uwagi, to bardziej informacja dla admina).
Skrypty w awk mają składnie:
<wzorzec> (opcjonalny) { program } (wymagany)
wzorzec – wyrażenie regularne przyporządkowane do pliku wejściowego (case sensitiv – wielkość liter ma znaczenie)
program – fragment programu, który będzie wykonany na tym co znalazł awk, dowolne komendy
AWK przetwarza dane linijka po linijce:
wczytuje pierwszą linijkę – sprawdza czy wzorzec się zgadza – gdy się zgadza wykonuje program
i przechodzi tak po kolei.
skrypt.awk:
/asia/ { print $0; } – wypisze wszystkie wiersze zawierające fraze asia ($0 – wypisz cały wiersz)
/^Zosia/ { print „Witaj ” $1};
$0 – całość
$1 – pierwsza fraza, do spacji (pierwsza kolumna)
* awk dzieli dane na kolumny, jako separator domyślnie używa spacji i tabów
** aby zmienić separator pól, podczas uruchamiania definiujemy jako -F(separator), czyli np -F_
-F – file separator
Uruchomienie skryptu:
awk -f skrypt plik_wejsciowy
słowa kluczowe:
BEGIN – wzorzec na początek
END – wzorzec na koniec
.* – każda możliwa linia (opcjonalne, jeżeli to wywalę to i tak wykona na wszystkich liniach)
Skrypt zliczający wiersze:
BEGIN { ile=0; }
/.*/ { ile=ile+1; }
END { print „Ilość wierszy w pliku: ” ile; }