Wstęp do systemów wielozadaniowych laboratorium 19 awk

Podobne dokumenty
System operacyjny Linux

J ezyk AWK Kurs systemu UNIX

Wyrażenia regularne. Wyrażenia regularne 1/41

skrypt powłoki to plik tekstowy, rozpoczynający się sekwencją: pierwsza linia określa powłokę, w której wykonywany jest skrypt; druga to komentarz

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Systemy operacyjne. Laboratorium 5. Awk podstawy. Jarosław Rudy Politechnika Wrocławska 28 lutego 2017

- wszystkie elementy - wszystkie elementy

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

System operacyjny Linux

Warunki logiczne instrukcja if

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Jerzy Nawrocki, Wprowadzenie do informatyki

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Programowanie I C / C++ laboratorium 03 arytmetyka, operatory

J.NAWROCKI, M. ANTCZAK, W. FROHMBERG, K. KOLANOWSKI, J. POCHMARA, S. WĄSIK, T. ŻOK AWK - WPROWADZENIE

Programowanie I C / C++ laboratorium 01 Organizacja zajęć

AWK. Plan wykładu. Wprowadzenie. Najprostszy program

4. Funkcje. Przykłady

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

3. Instrukcje warunkowe

Tablice i struktury. czyli złożone typy danych. Programowanie Proceduralne 1

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

JĘZYK SHELL JEST PEŁNYM JĘZYKIEM PROGRAMOWANIA

Operacje logiczne i struktury sterujące.

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

Wstęp do informatyki. stęp do informatyki Polecenia (cz.2)

Metody numeryczne Laboratorium 2

JAVAScript w dokumentach HTML - przypomnienie

Podstawy Programowania C++

Programowanie komputerowe. Zajęcia 1

Podstawy Programowania Podstawowa składnia języka C++

Środowisko programisty Zestaw 7

WHILE (wyrażenie) instrukcja;

Proste programy w C++ zadania

if (wyrażenie ) instrukcja

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Powłoka bash. Kurs systemu Unix 1

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

1 Wskaźniki i zmienne dynamiczne, instrukcja przed zajęciami

Microsoft IT Academy kurs programowania

Przetwarzanie tekstu 2. Operacje na plikach tekstowych w systemie Linux

Dokonaj analizy poniŝszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy uŝyciu instrukcji echo i print

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Podstawy i języki programowania

Wstęp do programowania. Różne różności

WHILE (wyrażenie) instrukcja;

Ćwiczenie 1. Wprowadzenie do programu Octave

Wykład 03 JavaScript. Michał Drabik

Maxima i Visual Basic w Excelu

POPULARNE POLECENIA SKRYPTY. Pracownia Informatyczna 2

do MATLABa programowanie WYKŁAD Piotr Ciskowski

lekcja 8a Gry komputerowe MasterMind

INSTALACJA I KONFIGURACJA SERWERA PHP.

Operatory zmiany sposobu przypisania standardowych strumieni >,<,>> Jeżeli pierwsze polecenie powiodło się to wykona drugie

Metody Metody, parametry, zwracanie wartości

Funkcje. Wprowadzenie. Mirosław Ochodek

Warsztaty dla nauczycieli

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

Wstęp do Programowania, laboratorium 02

TABLICE W JĘZYKU C/C++ typ_elementu nazwa_tablicy [wymiar_1][wymiar_2]... [wymiar_n] ;

Lekcja 7 Tablice. Definiowanie tablicy

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Podstawy programowania C. dr. Krystyna Łapin

Programowanie 3 - Funkcje, pliki i klasy

Plik->Opcje->Zakladka Główne->Dostosuj Wstążkę Zaznaczamy kwadracik Developer na liscie po prawej stronie. Klikamy OK.

Instrukcje sterujące. Programowanie Proceduralne 1

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Lab 10. Funkcje w argumentach funkcji metoda Newtona. Synonimy nazw typów danych. Struktury. Tablice struktur.

Programowanie w języku Python. Grażyna Koba

tablica: dane_liczbowe

$ awk f plik_z_programem plik_wejsciowy1 plik_wejsciowy2...

Przekierowanie wejścia wyjścia:

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

Tablice cz. I Tablice jednowymiarowe, proste operacje na tablicach

Baltie 3. Podręcznik do nauki programowania dla klas I III gimnazjum. Tadeusz Sołtys, Bohumír Soukup

Ćwiczenie 1. Wprowadzenie do programu Octave

Wprowadzenie do programu Mathcad 15 cz. 1

Wstęp do informatyki 2011/2012. Wyrażenia regularne (sed)

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Instrukcje. Operatory. Operatory. Instrukcje sterujące. wyrażenie1 && wyrażenie2 ;

Nazwa implementacji: Nauka języka Python wyrażenia warunkowe. Autor: Piotr Fiorek. Opis implementacji: Poznanie wyrażeń warunkowych if elif - else.

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Rys.2.1. Drzewo modelu DOM [1]

W przeciwnym wypadku wykonaj instrukcję z bloku drugiego. Ćwiczenie 1 utworzyć program dzielący przez siebie dwie liczby

Języki skryptowe w programie Plans

Skrypty powłoki w systemie Linux

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Podstawy Programowania Algorytmy i programowanie

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Część 4 życie programu

Umieszczanie kodu. kod skryptu

Wstęp do Informatyki i Programowania Laboratorium: Lista 0 Środowisko programowania

1 Wprowadzenie do algorytmiki

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

12. Skrypty w Linux - funkcje, instrukcje sterujące i obliczenia arytmetyczne

Pzetestuj działanie pętli while i do...while na poniższym przykładzie:

Transkrypt:

Wstęp do systemów wielozadaniowych laboratorium 19 awk Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-01-08

Język programowania do pracy z bazami danych (w formie tekstowej) wiersz w pliku = rekord słowa w danym wierszu = pola rekordu awk przegląda każdy wiersz, jeżeli dopasuje go do wzorca, to wykonuje akcję ogólna składnia: wzorzec { akcja; }

Prosty przykład awk //{ print $0; } ścieżka/do/pliku awk -f skrypt ścieżka/do/pliku

Ćwiczenie 1 Napisz polecenie AWK, które wyświetli całą zawartość pliku między liniami piątą a dziesiątą

Wzorzec BEGIN przed pierwszą linią END po ostatniej linii END po ostatniej linii /wyrażenie regularne / dopasowane wyrażenia NR==10 numer rekordu (wiersza)! wzorzec negacja warunku wzorzec A wzorzec B alternatywa warunków wzorzec A && wzorzec B koniunkcja warunków

Ćwiczenie 2 Napisz polecenie AWK, które wyświetli całą zawartość pliku między liniami piątą, a dziesiątą

Zmienne FS separator pól RS separator rekordów OFS ORS separator rekordów i rekordów w pliku wyjściowym NF ilość pól w bieżącym rekordzie NR numer bieżącego rekordu $0 cały rekord $1 $2 pole pierwsze, pole drugie FILENAME przetwarzany plik

Ćwiczenie 3 wyświetl ile wierszy i rekordów w każdym z wierszy ma plik passwd (ten rozszerzony)

Zmienne c.d. {zm = wartość;} w awk można stosować zmienne (bez deklaracji) {zm = $1 + $5; print zm;} operacje na zmiennych w stylu C

Ćwiczenie 4 napisz polecenie, które wyświetli w każdym wierszu sumę pól piątego i szóstego napisz polecenie, które wyświetli sumę wszystkich pól piątych i sumę pól szóstych w całym pliku

Instrukcja warunkowa instrukcja warunkowa (składnia w stylu c): /[0-9]*/ { if (zm == 2 && a <= 4 ) { instrukcja1 ; } else { instrukcja2 ; } # if } # akcja

Ćwiczenie 5 napisz polecenie, które obliczy w ilu wierszach suma pól piątego, szóstego i siódmego jest większa niż 22, a w ilu mniejsza

Pętla Pętla for (składnia w stylu c): /[0-9]*/ { for (i=2 ; i<8 ; i++ ) { instrukcja1 ; } # for } # akcja Pętla while: /[0-9]*/ { while (a+1!= 10 ) { a++;; } # while } # akcja

Ćwiczenie 6 napisz polecenie, które wczyta z pliku liczbę n 2, a następnie narysuje na wyjściu trójkąt prostokątny o wysokości i podstawie równej n. np: n = 4: * ** * * **** wskazówka: użyj printf zamiast print (łamanie linii poprzez: printf "napis\nnapis2")

Funkcje Funkcje: function sqr( n ) { return n * n; }

Tablice Tablice: tabl[ indeks ] = 1;

Ćwiczenie Napisz skrypt awk, który zliczy ilość liczb w każdym wierszu a następnie wypisze te liczby posortowane wskazówka: wykorzystaj jako separator pól odpowiednie wyrażenie regularne

Tablice hashowane tablice mogą być indeksowane napisami: tabl[ "ala ma kota"] = 1; iterowanie po tablicach hashowanych for (slowo in tablica ) { print slowo tablica[slowo] }

przeanalizuj skrypt posortuj kolejność wypisywania BEGIN{ tab [ Ala ] = 0 ; tab [ Ola ] = 0 ; } / [ aa ] l a /{ tab [ Ala ]++; } / [ Oo ] l a /{ tab [ Ola ]++; } END{ f o r ( i m i e i n tab ){ p r i n t f ( i m i e %s w y s t e p u j e %d r a z y, imie, tab [ i m i e ] ) ; } # f o r }

Operacje na napisach index(string, substring ) length(string ) split (string, tab ) podział napisu na tablicę według zmiennej FS (może być wyrażenie regularne) substr(string, start ) podnapis od pozycji start do końca substr(string, start, koniec ) podnapis od pozycji start długości k znaków

Ćwiczenie dana niech będzie tablica hashowna: tab["ala"]="alice"; tab["ma"]="has"; tab["kota"]="a kitty"; napisz prosty translator, który słowo po słowie zmienia wyrazy polskie na angielskie (o ile ma tłumaczenia w słowniku) jeżeli nie ma tłumaczenia, to pozostawia słowo bez zmian wynik wypisze na stdout można skorzystać z sub()

Zadanie 1 Zadanie domowe 1 Trójmian kwadratowy Napisz skrypt w awk, który zostanie wykonany na pliku, który zawiera po trzy liczby w wierszu (pierwsza niezerowa): a b c dla każdego wiersza: potraktuje te liczby jako współczynniki trójmianu: ax 2 + bx + c obliczy i wypisze pierwiastki rzeczywiste (jeśli są dwa), pierwiastek (jeśli jeden), lub informację o ich braku na koniec podsumuje, ile trójmianów miało po dwa, jeden lub brak pierwiastków rzeczywistych wskazówka: pierwiastek kwadratowy: sqrt() punktacja: 1p.

Zadanie domowe 2 Oceniacz Zadanie 1 z arkusza z wynikami z przedmiotu (na moodle) wyeksportuj arkusz drugi (z punktacją) jako plik csv, wskazówka: eksportując można wybrać separator pól (zalecany) oraz opcję cytowania napisów (zalecane bez) napisz skrypt, który automatycznie przeanalizuje arkusz, wystawi oceny i wypisze wyniki np: Pan/i Nazwisko Imię Punktacja Ocena oraz na koniec podsumuje ile jest poszczególnych ocen: np wystawionych ocen NDST: 0 (mam nadzieję JP) można pominąć osoby, które są skreślone z zajęć punktacja: 1p.

Zadanie 1 Zadanie domowe 3 Analiza logów napisz skrypt, który przeanalizuje plik z logami aktywności uczestników kursu na moodle skrypt dla każdego uczestnika obliczyć jego całkowitą aktywność w kursie, a następnie wypisać podsumowanie: Pan/i Nazwisko Imię aktywność, posortowane malejąco (wg aktywności) UWAGA: z logów wycięte są adresy IP i godziny punktacja: 1p.

Źródła Zadanie 1 http://www.gnu.org/software/gawk/ http://www.sunsite.ualberta.ca/documentation/gnu/ można szukać również pod nazwami nawk lub gawk