Przetwarzanie tekstów i AWK Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5

Slides:



Advertisements
Podobne prezentacje
Wprowadzenie do informatyki Wykład 6
Advertisements

Informatyka jako dziedzina wiedzy
Imperatywne modele obliczeń Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Język asemblera Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Informatyka Stosowana
Przetwarzanie tekstów i AWK Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do.
Rekurencja Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Informatyka jako dziedzina wiedzy Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie.
Imperatywne modele obliczeń Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Procesy współbieżne Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Przetwarzanie tekstów i AWK Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do.
Zarządzanie konfiguracją Doskonalenie Procesów Programowych Wykład 6 Copyright, 2001 © Jerzy.
Obliczalność i złożoność obliczeniowa
Budowa komputera Wstęp do informatyki Wykład 15
Rekurencja Copyright, 2001 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Imperatywne modele obliczeń Copyright, 2003 © Jerzy R. Nawrocki Teoretyczne podstawy.
Metody numeryczne Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Bazy danych Wprowadzenie do informatyki Wykład 9
Asembler i koncepcja von Neumanna
Programowanie imperatywne i granice obliczalności Copyright, 2004 © Jerzy R. Nawrocki
Przetwarzanie tekstów i AWK Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Rekursja Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne podstawy informatyki.
Przetwarzanie tekstów i AWK
Programowanie imperatywne i język C
Języki formalne i gramatyki
Procesy współbieżne Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki.
Od algebry Boole’a do komputera
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Modularyzacja i struktury danych w C Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Przetwarzanie tekstów i AWK Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 7
Metody formalne Copyright, 2005 © Jerzy R. Nawrocki Analiza systemów informatycznych.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Testowanie oprogramowania
Język C – Część II Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Wyrażenia regularne i język AWK
Komunikacja poprzez Internet
Dokumenty i prezentacje Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie do.
Tablice.
Programowanie w C Wykład 3
Język ANSI C Operacje we/wy
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Programowanie imperatywne i język C Copyright, 2006 © Jerzy R. Nawrocki Wstęp do.
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
Podstawy programowania w języku C i C++
Java 3 MPDI Programowanie obiektowe W7. import java.io.*; public class X { // kontrukcja throws – określenie jakie wyjątki może dana metoda // sygnalizować
Przetwarzanie tekstu i strony WWW Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
TABLICE C++.
Informatyka I - Wykład ANSI C
Modele obliczeń i granice obliczalności Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Jerzy Kotowski Politechnika Wrocławska
Translatory Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 11.
Gramatyki i translatory
Pomiary procesów programistycznych Copyright, 2002 © Jerzy R. Nawrocki Zarządzanie jakością.
Podstawy języka Instrukcje - wprowadzenie
Dokumenty elektroniczne Copyright, 2005 © Jerzy R. Nawrocki Wprowadzenie do.
Przetwarzanie tekstów i AWK Copyright, 2007 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5
Języki formalne i gramatyki Copyright, 2005 © Jerzy R. Nawrocki Teoretyczne podstawy.
Języki formalne Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład.
Wprowadzenie do teoretycznych podstaw informatyki Copyright, 2004 © Jerzy R. Nawrocki
Asembler i koncepcja von Neumanna Copyright, 2005 © Jerzy R. Nawrocki Wstęp do informatyki Wykład 5
Programowanie imperatywne i język C Copyright, 2007 © Jerzy R. Nawrocki Wstęp do.
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wyrażenia regularne i język AWK Copyright, 2004 © Jerzy R. Nawrocki Teoretyczne.
Przetwarzanie tekstów i AWK
Dane, zmienne, instrukcje
Zapis prezentacji:

Przetwarzanie tekstów i AWK Copyright, 2006 © Jerzy R. Nawrocki Wprowadzenie do informatyki Wykład 5

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

J.Nawrocki, Przetwarzanie tekstów i AWK Wprowadzenie Problem konwersji plików #include FILE *fin; char token[200]; char gettoken(void) {int i=0; char c; do {c = getc(fin); if (c == EOF) return (EOF); } while (c < !); #include 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 Wprowadzenie Problem konwersji plików BEGIN {FS=":| ";} NR == 1 {print $1, "\t", $3, "\t", $5;} {gsub(/,/, "., $6); print $2, "\t", $4, "\t", $6;} BEGIN {FS=":| ";} NR == 1 {print $1, "\t", $3, "\t", $5;} {gsub(/,/, "., $6); print $2, "\t", $4, "\t", $6;} Rozwiązanie w AWK

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 Plan wykładu Wprowadzenie Idea języka AWK Najprostsze programy Wzorce wiersza Wyrażenia regularne Zmienne

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

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

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

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

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

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

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

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

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

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

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

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 Nawrocki Jerzy Malinowski Adam $4==I1 { print $2, $1; } Jerzy Nawrocki I1 Jan Kowalski I2 Adam Malinowski I1 Ile pól na wyjściu? Najprostsze programy

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

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

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 Wzorce wiersza Początek i koniec tekstu Relacje Wzorce złożone Wzorce zakresu Wyrażenia regularne

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

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

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

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 Jerzy Adam I1 Adam Kowalski I2 Adam Malinowski I1 $4==I1 && $1==Adam { print $2, $1; } Malinowski Adam Wzorce złożone

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 Wzorce z wyrażeniami regularnymi Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg 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! $1 ~ /^A$/

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg 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! $1 ~ /^A$/ A mój pozostanie...

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / 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! $1 ~ /^A/

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / 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! $1 ~ /^A/ A mój pozostanie... Ale patrząc na panią,

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Koniec Ciąg_zn ~ / wyr_reg $/ 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! Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / $1 ~ /dzi$/

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Koniec Ciąg_zn ~ / wyr_reg $/ 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! Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / $1 ~ /dzi$/ Szydzi z prawdziwej sztuczna:

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Koniec Podciąg Ciąg_zn ~ / wyr_reg $/ Ciąg_zn ~ / wyr_reg / 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! Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / $1 ~ /dzi/

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Koniec Podciąg Ciąg_zn ~ / wyr_reg $/ Ciąg_zn ~ / wyr_reg / Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / $1 ~ /dzi/ 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! Szydzi z prawdziwej sztuczna: Wdzięk pani wkrótce minie

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Koniec Podciąg Ciąg_zn ~ / wyr_reg $/ Ciąg_zn ~ / wyr_reg / Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / $0 ~ /dzi/ 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! Róża prawdziwa i sztuczna Szydzi z prawdziwej sztuczna: Wdzięk pani wkrótce minie

J.Nawrocki, Przetwarzanie tekstów i AWK Wzorce z wyrażeniami regularnymi Koniec Podciąg Ciąg_zn ~ / wyr_reg $/ Ciąg_zn ~ / wyr_reg / Ciąg_zn ~ /^ wyr_reg $/ $0, $1, $2,.. Np. znak lub ciąg znaków Cały ciąg Początek Ciąg_zn ~ /^ wyr_reg / /dzi//dzi/ 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! 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 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 Znaki specjalne Co robi ten program? /^.$/ /[ ]/ /[0-9]/

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

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

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

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

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

J.Nawrocki, Przetwarzanie tekstów i AWK Nawiasy i alternatywa Nawiasy podnoszą priorytet operatorów: 3*(4 + 5) = 3* 9 = 27 Rozdzielność mnożenia względem dodawania: 3*(4 + 5) = 3*4 + 3*5 = = 27 (4 + 5)*3 = 4*3 + 5*3 = = 27 Rozdzielność konkatenacji względem alternatywy /fi | ki/ /(f | k)i/ = /Adamek | Adamik/ /Adam(e | i)k/ =

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Zmienne Zmienne wprowadzone przez programistę (typ: ciąg znaków; wartość początkowa: ciąg pusty / zero) Zmienne polowe $1, $(i+j-1),.. Zmienne wbudowane (mają standardowe znaczenie)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

J.Nawrocki, Przetwarzanie tekstów i AWK Podsumowanie gawk -f prog.awk 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 Literatura A. Aho, B. Kernighan, P. Weinberger, The AWK Programming Language, Addison- Wesley, Reading, J. Nawrocki, W. Complak, Wprowadzenie do przetwarzania tekstów w języku AWK, Pro Dialog 2 (1994),

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?