- Przedmiot: Architektura komputerów i systemy operacyjne
- Kierunek studiów: Elektronika i Telekomunikacja
- Data:
- Ćwiczenie nr 3 – Procesor tekstu AWK.
- Cel zajęć: Poznanie możliwości i nauka postaw posługiwania się AWK jako narzędziem do szybkiego wydobywania informacji zawartej w plikach tekstowych i do modyfikacji tych plików.
- wywołania:
- awk ' warunek { akcja } ' plik_z_danymi
- awk -f plik_z_poleceniami_awk plik_z_danymi gdy jest więcej poleceń awk niż jedna para warunek-akcja
- awk -f plik_z_poleceniami_awk plik_z_danymi > plik_wynikowy gdy rezultaty awk chcemy przekierowac ze stand. wyjścia (terminala) do pliku
- zasada:
- Dla każdego wiersza pliku_z_danymi
- Dla każdej pary warunek-akcja w programie awk
- Jeżeli "warunek" jest spełniony, to wykonaj "akcja"
- Zmienne wbudowane (niektóre):
- $1, $2, $3..... kolejne pola w bieżącym wierszu pliku danych
- $0 całość bieżącego wiersza
- NF liczba pól w bieżącym wierszu
- NR liczba dotychczas przeanalizowanych wierszy
- FS separator pól, domyślnie spacja
- warunki:
- wyrażenia logiczne
- $3 < $1*S2
- $4=="Michalina"
- $6<$3+$2
- wyrażenia regularne
- /djabel/ - czy ciag znaków "djabel" występuje w wierszu
- $2~/djabel/ czy ciąg znaków "djabel" występuje w 2-gim polu wiersza
- kombinacje logiczne dowolnych warunków:
- && - koniunkcja (i)
- || - alternatywa (lub)
- ! - negacja, nawiasy
- słowo BEGIN
- specjalny warunek, który ma być spełniony "przed" wszystkimi wierszami z pliku danych, akcja opatrzona takim warunkiem jest wykonywana dokładnie raz, na początku programu.
- słowo END
- specjalny warunek, który ma być spełniony "po" wszystkimi wierszami z pliku danych, akcja opatrzona takim warunkiem jest wykonywana dokładnie raz, na końcu programu.
- dwa warunki rozdzielone przecinkami
- akcja jest wykonywana od wiersza, który spełnia pierwszy warunek, do wiersza, który spełnia drugi warunek
- warunek pusty
- zawsze prawdziwy, akcja wykonywana jest dla wszystkich wierszy
- Ćwiczenie
- 1. Napisz polecenie AWK numerujące wiersze podanego pliku i tworzące plik wynikowy z ponumerowanymi wierszami.
- 2. Napisz polecenie AWK zliczające, ile razy dane słowo wystąpiło w danym pliku.
- 3. Z podanego przez prowadzącego pliku „zarobki”, wydobądź przy pomocy AWK informacje:
- - listę zarobków wszystkich osób (plik podaję stawki godzinowe i ilość przepracowanych godzin)
- - listę osób, których zarobki przekraczają 3000 zł.
- - listę osób, które przepracowały mniej niż 20 godzin w miesiącu
- - informację, ile zarabiają wszystkie osoby o imieniu Jan
- 1. Programem AWK stwórz nową listę płac, która pominie osoby o nazwisku Kowalski i imieniu Zofia.
- Zadanie nadobowiązkowe (domowe, na ocenę):
- Z podanych dwóch plików: „studenci” (nazwisko, nr indeksu) i „egzamin” (nr indeksu, ocena), przy pomocy AWK wydobądź nazwiska osób, które zdały egzamin
- Sprawozdanie winno zawierać listingi zawartości poleceń i programów AWK z krótkim objaśnieniem słownym, ewent. dyskusję niepowodzeń i trudności
- Przedmiot: Architektura komputerów i systemy operacyjne
- Kierunek studiów: Elektronika i Telekomunikacja
- Data:
- Ćwiczenie nr 2 – Tworzenie skryptów w powłoce systemu Linux – zaawansowane struktury programistyczne.
- Cel zajęć: Przećwiczenie możliwości programistycznych zawartych w języku skryptowym systemów rodziny Unix
- Zmienne środowiskowe
- Środowisko programu składa się ze zmiennych i ich wartości. Jest ono przekazywane do wszystkich programów uruchamianych przez ten program (program potomny dziedziczy środowisko).
- Przykłady:
- PATH – lista katalogów, w których system szuka programów i skryptów wykonywalnych
- HOME – katalog domowy użytkownika
- Tworzenie zmiennej środowiskowej:
- MOJ_KATALOG=/usr/home/bolek
- export MÓJ_KATALOG
- lub krócej export MOJ_KATALOG=/usr/home/bolek
- Argumenty skryptu
- Argumenty wywołania skryptu: skrypt arg1 arg2 arg3 ...
- $1, $2, ..., $9 to zmienne, których wartości to pierwsze 9 argumentów wywołania
- $0 to nazwa samego skryptu
- $# to liczba argumentów skryptu
- $@ to wszystkie argumenty skryptu
- argumenty wywołania powyżej 9-tego możemy odczytywać za pomocą polecenia shift.
- Funkcja warunkowa if
- if [ warunek1 ] ; then
- instrukcje1
- elif [ warunek2 ] ; then
- instrukcje2
- ....
- ....
- else
- instrukcje_else
- fi
- Warunki logiczne funkcji if
- == jest równy
- -lt jest mniejszy
- -gt jest większy
- -ne jest różny
- Pętle
- while warunek; do
- instrukcje
- done
- Instrukcja wyboru
- case wyrażenie in
- wzorzec1) instrukcje1 ;;
- wzorzec2) instrukcje2 ;;
- ....
- esac
- Potoki
- polecenie1 | polecenie2 | polecenie3
- wyniki działania polecenia 1 są argumentami dla polecenia2, którego wyniki są z kolei argumentami dla polecenia 3
- Ćwiczenie
- 1. Napisać skrypt wypisujący swoje argumenty wywołania w odwrotnej kolejności
- 2. Stworzyć procedurę w bash obliczającą wartość silnia (n!) podanej liczby
- 3. Napisać skrypt podający słowną reprezentację podanej liczby z zakresu 1..99
- Sprawozdanie winno zawierać listingi zawartości skryptów z krótkim objaśnieniem słownym.
- Pomoce: niniejsza instrukcja, materiały z wykładów, wskazówki prowadzącego i jego konsultacje.
- Pomoce: niniejsza instrukcja, materiały z wykładów, wskazówki prowadzącego i jego konsultacje.