AWK - Tutorial
..:: Menu ::..
 :: Wprowadzenie
 :: Zaczynamy
 :: Formatowane wyjście
 :: Wyrażenia regularne
 :: Wbudowane zmienne
 :: Operatory i funkcje
 :: Instrukcje sterujące
 :: Tablice
 
 :: Przykłady
 :: Linki

Darmowe konta, domeny: of.pl
..:: Formatowane wyjście ::..

 

   Strumień wyjściowy w programje awk formatujemy wykorzystując funkcje "printf" (analogiczną jak w języku C)

Przykład "mojawk08":

#mojawk08, program awk, który wyświetla lokalizacje i typ
#komputerów z bloku D
$3 ~ /D/ { print "Lokalizacja = ", $3, " typ = ", $1 }

Ekran:

>awk -f mojawk08 awktekst
  Lokalizacja =   D402   typ =   XT
  Lokalizacja =   D403   typ =   386
  Lokalizacja =   D404   typ =   486

Przykład "mojawk09":

#mojawk09, program awk, który wyświetla lokalizacje
#komputerów typu 286
$1 == "286" { printf( "Lokalizacja : "); print $3 }

Ekran:

>awk -f mojawk09 awktekst
  Lokalizacja : A423
  Lokalizacja : A425

Przykład "mojawk10":

#mojawk10, program awk, który wyświetla lokalizacje
#komputerów typu 286
#wersja 2 - format textowy
$1 == "286" { printf( "Lokalizacja %s\n", $3 ); }

Ekran:

>awk -f mojawk10 awktekst
  Lokalizacja A423
  Lokalizacja A425

Przykład "mojawk11":

#mojawk11, program awk, który wyświetla lokalizacje
#oraz numer seryjny komputerów typu 286
#formatowanie textowe
$1=="286" { printf( "Lokalizacja = %s, numer = %s\n",$3,$4) }

Ekran:

>awk -f mojawk11 awktekst
  Lokalizacja = A423, numer = CC0183
  Lokalizacja = A425, numer = CC0184

Przykład "mojawk12":

#mojawk12, program awk, który wyświetla lokalizacje
#oraz wielkość pamięci komputerów typu 486
#formatowanie liczbowe
$1=="486" { printf("Lokalizacja = %s, pamiec = %dKb\n",$3,$5) }

Ekran:

>awk -f mojawk12 awktekst
  Lokalizacja = D404, pamiec = 270Kb
  Lokalizacja = A424, pamiec = 670Kb

Przykład "mojawk13":

#mojawk13, program awk, który wyświetla lokalizacje
#oraz wielkość pamięci komputerów typu 286
#ustalona szerokość pól liczbowych i textowych
$1=="286"{printf("Lokalizacja = %10s, pamiec = %5dKb\n",$3,$5)}

Ekran:

>awk -f mojawk13 awktekst
  Lokalizacja =       A423, pamiec =   100Kb
  Lokalizacja =       A425, pamiec =    80Kb

   W programie awk, istnieją zdefiniowane znaczniki, które umożliwiają wykonanie akcji przed rozpoczęciem czytania strumienia wejściowego (np.: ustawienie początkowej wartości zmiennych, wyświetlenie nagłowka) oraz po zakończeniu jego przetwarzania (np.: wyświetlenie podsumowania). Są również predefiniowane znienne zawierające np. numer aktualnie przetwarzanej lini, oraz wszystkich pól w lini. Predefiniowane zmienne zostana szerzej omówione w następnych rozdziałach.

  BEGIN { akcja } - wykonanie akcji przed wczytaniem pierwszej lini strumienia wejściowego

  END { akcja } - wykonanie akcji po przeczytaniu wszystkich lini strumienia wejściowego

  NR - numer aktualnej lini

  NF - ilość pól w aktualnej lini

Przykład "mojawk14":

#mojawk14, program awk
#przykład wykorzystania znacznika BEGIN
BEGIN { print "Lokalizacja komputerow 286" }
$1 == "286" { print $3 }

Ekran:

>awk -f mojawk14 awktekst
  Lokalizacja komputerow 286
  A423
  A425

Przykład "mojawk15":

#mojawk15, program awk
#przykład wykorzystania znacznika END
END { print "Jest ", NR-1, "komputerow." }

Ekran:

>awk -f mojawk15 awktekst
  Jest 13 komputerów.

   Użytkownik programu awk może również definiować własne zmienne. Przyjmują one domyślna wartość zero.

Przykład "mojawk16":

#mojawk16, program awk zliczający ilość komputerów 486
#przykład wykorzystania znacznika END i zmiennych użytkownika
$1 == "486" { komputery++ }
END { printf("Jest %d komputery 486\n", komputery) }

Ekran:

>awk -f mojawk16 awktekst
  Jest 2 komputery 486

Valid XHTML 1.0 Transitional Valid CSS!   E-mail do webmastera: sgrzes@op.pl  © Grzegorz Sala 2005 DO GÓRY