Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Przetwarzanie tekstów i AWK

Podobne prezentacje


Prezentacja na temat: "Przetwarzanie tekstów i AWK"— Zapis prezentacji:

1 Przetwarzanie tekstów i AWK
(c) Jerzy Nawrocki Wykład 7 Teoretyczne podstawy informatyki Wykład 4 Przetwarzanie tekstów i AWK Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do informatyki

2 Problem konwersji plików
Wprowadzenie Problem konwersji plików FName:Jurek SName:Busz Salary 585 FName:Alek SName:Gor Salary 700 FName SName Salary Jurek Busz Alek Gor J.Nawrocki, Przetwarzanie tekstów i AWK

3 Problem konwersji plików
Wprowadzenie Problem konwersji plików #include <stdio.h> #include <stdlib.h> FILE *fin; char token[200]; char gettoken(void) {int i=0; char c; do {c = getc(fin); if (c == EOF) return (EOF); } while (c < ‘!’); Rozwiązanie w C:  40 linii kodu J.Nawrocki, Przetwarzanie tekstów i AWK

4 Problem konwersji plików
Wprowadzenie Problem konwersji plików Rozwiązanie w AWK BEGIN {FS=":| ";} NR == 1 {print $1, "\t", $3, "\t", $5;} {gsub(/,/, ".” , $6); print $2, "\t", $4, "\t", $6;} J.Nawrocki, Przetwarzanie tekstów i AWK

5 J.Nawrocki, Przetwarzanie tekstów i AWK
Wprowadzenie Powstanie języka AWK: Aho, Weinberger, Kernighan Bell Labs, New Jersey (USA), 1977 Platformy: Unix, MS DOS/Windows Podobieństwo do C J.Nawrocki, Przetwarzanie tekstów i AWK

6 J.Nawrocki, Przetwarzanie tekstów i AWK
Plan wykładu Wprowadzenie Idea języka AWK Najprostsze programy Wzorce wiersza Wyrażenia regularne Zmienne J.Nawrocki, Przetwarzanie tekstów i AWK

7 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Plik wejściowy Pole Wiersz Jerzy Nawrocki I1 Jan Kowalski I2 Adam Malinowski I1 Pola: $1, $2, $3, ... J.Nawrocki, Przetwarzanie tekstów i AWK

8 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Schemat programu w AWK Reguła przetwarzania wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

9 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

10 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

11 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

12 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

13 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

14 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

15 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

16 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

17 J.Nawrocki, Przetwarzanie tekstów i AWK
Idea języka AWK Zasada działania Jerzy Nawrocki Jan Kowalski Adam Malinowski $0 oznacza bieżący wiersz wzorzec1 {instrukcje1} wzorzec2 {instrukcje2} J.Nawrocki, Przetwarzanie tekstów i AWK

18 J.Nawrocki, Przetwarzanie tekstów i AWK
Plan wykładu Wprowadzenie Idea języka AWK Najprostsze programy Wzorce wiersza Wyrażenia regularne Zmienne J.Nawrocki, Przetwarzanie tekstów i AWK

19 J.Nawrocki, Przetwarzanie tekstów i AWK
Najprostsze programy Ile pól na wyjściu? Jerzy Nawrocki I1 Jan Kowalski I2 Adam Malinowski I1 $4==”I1” { print $2, $1; } Nawrocki Jerzy Malinowski Adam J.Nawrocki, Przetwarzanie tekstów i AWK

20 J.Nawrocki, Przetwarzanie tekstów i AWK
Najprostsze programy Ile pól na wyjściu? Jerzy Nawrocki I1 Jan Kowalski I2 Adam Malinowski I1 $4==”I1” Jerzy Nawrocki I1 Adam Malinowski I1 J.Nawrocki, Przetwarzanie tekstów i AWK

21 J.Nawrocki, Przetwarzanie tekstów i AWK
Najprostsze programy Jakie pole najpierw? Jerzy Nawrocki I1 Jan Kowalski I2 Adam Malinowski I1 { print $2, $1; } Nawrocki Jerzy Kowalski Jan Malinowski Adam J.Nawrocki, Przetwarzanie tekstów i AWK

22 J.Nawrocki, Przetwarzanie tekstów i AWK
Plan wykładu Wprowadzenie Idea języka AWK Najprostsze programy Wzorce wiersza Wyrażenia regularne Zmienne J.Nawrocki, Przetwarzanie tekstów i AWK

23 J.Nawrocki, Przetwarzanie tekstów i AWK
Wzorce wiersza Początek i koniec tekstu Relacje Wzorce złożone Wzorce zakresu Wyrażenia regularne J.Nawrocki, Przetwarzanie tekstów i AWK

24 Początek i koniec tekstu
Jerzy Nawrocki I1 Jan Kowalski I2 Adam Malinowski I1 BEGIN { print ”-----”; } $4==”I2” { print $2, $1; } END { print ”*****”; } ----- Kowalski Jan ***** J.Nawrocki, Przetwarzanie tekstów i AWK

25 Początek i koniec tekstu
Jerzy Nawrocki I1 Jan Kowalski I2 Adam Malinowski I1 END { print ”*****”; } $4==”I2” { print $2, $1; } BEGIN { print ”-----”; } ----- Kowalski Jan ***** J.Nawrocki, Przetwarzanie tekstów i AWK

26 J.Nawrocki, Przetwarzanie tekstów i AWK
Relacje $1 > $2 J.Nawrocki, Przetwarzanie tekstów i AWK

27 J.Nawrocki, Przetwarzanie tekstów i AWK
Wzorce złożone || lub (alternatywa) $1==1 || $2==1 && i (koniunkcja) $1==1 && $2==1 ! nie (zaprzeczenie) ! $1==1 J.Nawrocki, Przetwarzanie tekstów i AWK

28 J.Nawrocki, Przetwarzanie tekstów i AWK
Wzorce złożone Jerzy Adam I1 Adam Kowalski I2 Adam Malinowski I1 $4==”I1” && $1==”Adam” { print $2, $1; } Malinowski Adam J.Nawrocki, Przetwarzanie tekstów i AWK

29 J.Nawrocki, Przetwarzanie tekstów i AWK
Plan wykładu Wprowadzenie Idea języka AWK Najprostsze programy Wzorce wiersza Wyrażenia regularne Zmienne J.Nawrocki, Przetwarzanie tekstów i AWK

30 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ $1 ~ /^A$/ J.Nawrocki, Przetwarzanie tekstów i AWK

31 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ $1 ~ /^A$/ A mój pozostanie... J.Nawrocki, Przetwarzanie tekstów i AWK

32 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / $1 ~ /^A/ J.Nawrocki, Przetwarzanie tekstów i AWK

33 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / $1 ~ /^A/ A mój pozostanie... Ale patrząc na panią, J.Nawrocki, Przetwarzanie tekstów i AWK

34 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / Koniec Ciąg_zn ~ / wyr_reg $/ $1 ~ /dzi$/ J.Nawrocki, Przetwarzanie tekstów i AWK

35 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / Koniec Ciąg_zn ~ / wyr_reg $/ $1 ~ /dzi$/ Szydzi z prawdziwej sztuczna: J.Nawrocki, Przetwarzanie tekstów i AWK

36 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / Koniec Ciąg_zn ~ / wyr_reg $/ $1 ~ /dzi/ Podciąg Ciąg_zn ~ / wyr_reg / J.Nawrocki, Przetwarzanie tekstów i AWK

37 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / Koniec Ciąg_zn ~ / wyr_reg $/ $1 ~ /dzi/ Podciąg Ciąg_zn ~ / wyr_reg / Szydzi z prawdziwej sztuczna: Wdzięk pani wkrótce minie J.Nawrocki, Przetwarzanie tekstów i AWK

38 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / Koniec Ciąg_zn ~ / wyr_reg $/ $0 ~ /dzi/ Podciąg Ciąg_zn ~ / wyr_reg / Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: Wdzięk pani wkrótce minie J.Nawrocki, Przetwarzanie tekstów i AWK

39 Wzorce z wyrażeniami regularnymi
Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: - Krótkie twoje trwanie, Wdzięk pani wkrótce minie A mój pozostanie... - Tak - rzecze wonna róża, Rumieniąc się skromnie – Ale patrząc na panią, Myśleć będą o mnie! Np. znak lub ciąg znaków $0, $1, $2, .. Cały ciąg Ciąg_zn ~ /^ wyr_reg $/ Początek Ciąg_zn ~ /^ wyr_reg / Koniec Ciąg_zn ~ / wyr_reg $/ /dzi/ Podciąg Ciąg_zn ~ / wyr_reg / Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: Wdzięk pani wkrótce minie $0 ~ / wyr_reg / = / wyr_reg / J.Nawrocki, Przetwarzanie tekstów i AWK

40 J.Nawrocki, Przetwarzanie tekstów i AWK
Znaki specjalne dowolny znak [ ] zbiór znaków \n nowa linia \ kropka \” znak cudzysłowu \ddd znak o kodzie oktalnym ddd J.Nawrocki, Przetwarzanie tekstów i AWK

41 J.Nawrocki, Przetwarzanie tekstów i AWK
Znaki specjalne Co robi ten program? /^.$/ /[ ]/ /[0-9]/ J.Nawrocki, Przetwarzanie tekstów i AWK

42 Dopełnienie zbioru znaków
Co za różnica? /^[0-9]/ [^ ... ] /[^0-9]/ J.Nawrocki, Przetwarzanie tekstów i AWK

43 J.Nawrocki, Przetwarzanie tekstów i AWK
Alternatywa (lub) wyr_reg | wyr_reg J.Nawrocki, Przetwarzanie tekstów i AWK

44 J.Nawrocki, Przetwarzanie tekstów i AWK
Alternatywa (lub) wyr_reg | wyr_reg Ząbki listka Nic tak nie potrafi gryźć Jak cudzy laurowy liść. J.Nawrocki, Przetwarzanie tekstów i AWK

45 J.Nawrocki, Przetwarzanie tekstów i AWK
Alternatywa (lub) wyr_reg | wyr_reg Ząbki listka Nic tak nie potrafi gryźć Jak cudzy laurowy liść. Co robi ten program? /fi | ki/ J.Nawrocki, Przetwarzanie tekstów i AWK

46 J.Nawrocki, Przetwarzanie tekstów i AWK
Alternatywa (lub) wyr_reg | wyr_reg Ząbki listka Nic tak nie potrafi gryźć Jak cudzy laurowy liść. Co robi ten program? /fi | ki/ Ząbki listka Nic tak nie potrafi gryźć J.Nawrocki, Przetwarzanie tekstów i AWK

47 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą. 1 2 3 Rok 1984 4 damy $1 ~ /[0-9]/ J.Nawrocki, Przetwarzanie tekstów i AWK

48 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą. 1 2 3 Rok 1984 4 damy $1 ~ /[0-9]/ 1 2 3 4 damy J.Nawrocki, Przetwarzanie tekstów i AWK

49 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą. 1 2 3 Rok 1984 4 damy Po3maj 2 raki $1 ~ /[0-9]/ Po3maj 2 raki 1 2 3 4 damy J.Nawrocki, Przetwarzanie tekstów i AWK

50 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą. 1-cyfrową. 1 2 3 Rok 1984 4 damy Po3maj 2 raki $1 ~ /^ [0-9] $/ J.Nawrocki, Przetwarzanie tekstów i AWK

51 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą 1-cyfrową. 1 2 3 Rok 1984 4 damy Po3maj 2 raki $1 ~ /^ [0-9] $/ 1 2 3 4 damy 2 raki J.Nawrocki, Przetwarzanie tekstów i AWK

52 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą. 1 2 3 Rok 1984 4 damy Po3maj 2 raki Po3maj 32 raki $1 ~ /^ [0-9] $/ 1 2 3 4 damy 2 raki J.Nawrocki, Przetwarzanie tekstów i AWK

53 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą 1- lub 2-cyfrową. 1 2 3 Rok 1984 4 damy Po3maj 2 raki Po3maj 32 raki $1 ~ /^ [0-9] | [0-9][0-9] $/ 1 cyfra 2 cyfry J.Nawrocki, Przetwarzanie tekstów i AWK

54 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą 1- lub 2-cyfrową. 1 2 3 Rok 1984 4 damy Po3maj 2 raki Po3maj 32 raki Po3maj 32 raki 120 zl $1 ~ /^ [0-9] | [0-9][0-9] $/ 1 2 3 4 damy 2 raki 32 raki 32 raki Brak 120 zł ! J.Nawrocki, Przetwarzanie tekstów i AWK

55 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą. 1 2 3 Rok 1984 4 damy Po3maj 2 raki Po3maj 32 raki Po3maj 32 raki 120 zl $1 ~ /^ [0-9] | [0-9][0-9] | [0-9][0-9][0-9] $/ 1 cyfra 2 cyfry 3 cyfry J.Nawrocki, Przetwarzanie tekstów i AWK

56 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania [0-9] = [0-9]1 [0-9][0-9] = [0-9]2 [0-9][0-9][0-9] = [0-9]3 [0-9]1 | [0-9]2 | [0-9]3 | ... = [0-9]+ J.Nawrocki, Przetwarzanie tekstów i AWK

57 J.Nawrocki, Przetwarzanie tekstów i AWK
Operator powtarzania Wypisz wszystkie wiersze, w których pierwsze pole jest liczbą. 1 2 3 Rok 1984 4 damy Po3maj 2 raki Po3maj 32 raki Po3maj 32 raki 120 zl $1 ~ /^ [0-9]+ $/ 1 2 3 4 damy 2 raki 32 raki 32 raki 120 zl J.Nawrocki, Przetwarzanie tekstów i AWK

58 Operator powtarzania *
Musi przynajmniej raz wystąpić w. Może wystąpić sekwencja w. w+ = w | ww | www | . . . w* =  | w | ww | www | . . . w( | w | ww | www |.. )= w|ww|www|wwww|.. Ciąg pusty x  = x  x = x w+ = w w* = w* w x w* = x | x w+ w*x = x | w+x J.Nawrocki, Przetwarzanie tekstów i AWK

59 J.Nawrocki, Przetwarzanie tekstów i AWK
Zagadka Co robi ten program? $2 ~ /^[0-9][0-9]*$/ J.Nawrocki, Przetwarzanie tekstów i AWK

60 J.Nawrocki, Przetwarzanie tekstów i AWK
Zagadka Nadgodziny 2001/02 ================ Nawrocki 60 Complak 359 Co robi ten program? $2 ~ /^[0-9]+$/ J.Nawrocki, Przetwarzanie tekstów i AWK

61 J.Nawrocki, Przetwarzanie tekstów i AWK
Zagadka Nadgodziny 2001/02 ================ Nawrocki 60 Complak 359 Co robi ten program? $2 ~ /^[0-9]+$/ Nawrocki 60 Complak 359 J.Nawrocki, Przetwarzanie tekstów i AWK

62 J.Nawrocki, Przetwarzanie tekstów i AWK
Nawiasy /^[0-7]+(Q|O)$/ /^[0-7]+Q|O$/ J.Nawrocki, Przetwarzanie tekstów i AWK

63 J.Nawrocki, Przetwarzanie tekstów i AWK
Nawiasy /^[0-7]+(Q|O)$/ /^[0-7]+Q|O$/ J.Nawrocki, Przetwarzanie tekstów i AWK

64 J.Nawrocki, Przetwarzanie tekstów i AWK
Nawiasy 17Q 10O O /^[0-7]+(Q|O)$/ /^[0-7]+Q|O$/ 17Q 10O J.Nawrocki, Przetwarzanie tekstów i AWK

65 J.Nawrocki, Przetwarzanie tekstów i AWK
Nawiasy 17Q 10O O /^[0-7]+(Q|O)$/ /^[0-7]+Q|O$/ 17Q 10O 17Q O J.Nawrocki, Przetwarzanie tekstów i AWK

66 J.Nawrocki, Przetwarzanie tekstów i AWK
Opcjonalność 14 15D 16d D17 D /^ [0-9]+(D|d)? $/ 14 15D 16d J.Nawrocki, Przetwarzanie tekstów i AWK

67 J.Nawrocki, Przetwarzanie tekstów i AWK
Plan wykładu Wprowadzenie Idea języka AWK Najprostsze programy Wzorce wiersza Wyrażenia regularne Zmienne J.Nawrocki, Przetwarzanie tekstów i AWK

68 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne Zmienne wprowadzone przez programistę (typ: ciąg znaków; wartość początkowa: ciąg pusty / zero) Zmienne wbudowane (mają standardowe znaczenie) Zmienne polowe $1, $(i+j-1), .. J.Nawrocki, Przetwarzanie tekstów i AWK

69 Przykładowe zmienne wbudowane
NF - liczba pól w wierszu NR - numer wiersza FILENAME - nazwa pliku J.Nawrocki, Przetwarzanie tekstów i AWK

70 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

71 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

72 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

73 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

74 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

75 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

76 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

77 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

78 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} J.Nawrocki, Przetwarzanie tekstów i AWK

79 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 6 J.Nawrocki, Przetwarzanie tekstów i AWK

80 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 6 J.Nawrocki, Przetwarzanie tekstów i AWK

81 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 6 J.Nawrocki, Przetwarzanie tekstów i AWK

82 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 4 3 6 J.Nawrocki, Przetwarzanie tekstów i AWK

83 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 4 3 6 9 J.Nawrocki, Przetwarzanie tekstów i AWK

84 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 4 3 6 9 J.Nawrocki, Przetwarzanie tekstów i AWK

85 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 4 3 6 9 J.Nawrocki, Przetwarzanie tekstów i AWK

86 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 4 3 6 4 ? 9 J.Nawrocki, Przetwarzanie tekstów i AWK

87 J.Nawrocki, Przetwarzanie tekstów i AWK
Zmienne NR NF total Reguly sitwy Zero do zera A bedzie kariera. 1 2 2 1 2 3 3 3 {total= total + NF;} END {print "Pol: ", total; print "Wierszy: ", NR;} 4 3 6 4 ? 9 Pol: 9 Wierszy: 4 J.Nawrocki, Przetwarzanie tekstów i AWK

88 J.Nawrocki, Przetwarzanie tekstów i AWK
Podsumowanie gawk -f prog.awk <in.txt >out.txt Wyrażenia regularne Zmienne Inne mechanizmy AWK: Instrukcje złożone (if, while, ..) Tablice dynamiczne Funkcje wbudowane (gsub, ..) Wreszcie! J.Nawrocki, Przetwarzanie tekstów i AWK

89 J.Nawrocki, Przetwarzanie tekstów i AWK
Literatura A. Aho, B. Kernighan, P. Weinberger, The AWK Programming Language, Addison-Wesley, Reading, 1988. J. Nawrocki, W. Complak, Wprowadzenie do przetwarzania tekstów w języku AWK, Pro Dialog 2 (1994), J.Nawrocki, Przetwarzanie tekstów i AWK

90 J.Nawrocki, Przetwarzanie tekstów i AWK
Ocena wykładu 1. Wrażenie ogólne? (1 - 6) 2. Zbyt wolno czy zbyt szybko? 3. Czy dowiedziałeś się czegoś ważnego? 4. Co poprawić i jak? J.Nawrocki, Przetwarzanie tekstów i AWK


Pobierz ppt "Przetwarzanie tekstów i AWK"

Podobne prezentacje


Reklamy Google