Systemy operacyjne materiaªy ¢wiczeniowe

Studia dzienne PJWSTK

‚WICZENIA III

Wyra»enia regularne

• wyra»enie regularne ci¡g znaków zwykªych (litery, cyfry, znaki) wraz z znakami specjalnymi

• podstawowe znaki specjalne:

◦ . dopasowanie dodolnego znaku zwykªego, np.

a.a = {aaa, aba, ..., aAa, aBa, ..., a0a, a1a, ...}

◦ $ dopasuj popdrzaj¡ce operator wyra»enie regularne do ko«ca wiersza, np.

a$ = {a, aa, ba, ..., aaa, aba, ..., aaaa, aaba, ...}

◦ ^ dopasuj wyst¦puj¡ce po operatorze wyra»enie regularne do pocz¡tku wiersza, np.

^a = {a, aa, ab, ..., aaa, aab, ..., aaaa, aaab, ...}

◦ * dopasuj zero albo wi¦cej wyst¡pie« znaku poprzedzaj¡cego operator, np.

a* = {a, aa, aaa, aaaa, aaaaa, ...}

◦ \ pomini¦cie specjalnego znaczenia znaku wyst¦puj¡cego po operatorze, np.

\.. = {.a, .b, ..., .A, .B, ..., .0, .1, ...}

◦ [] dopasuj dowolny znak z zestawu mi¦dzy nawiasem [ oraz nawiasem ], np.

[abc123] = {a, b, c, 1, 2, 3}

◦ [^] dopasuj dowolny znak nie nale»¡cy do zestawu mi¦dzy nawiasem [ oraz nawiasem ], np.

[^abc123] = {d, e, ..., z, A, B, ..., Z, 3, 4, ..., 9, ...}

• polecenia u»ywaj¡ce wyra»e« regularnych grep, awk, ed, emacs, ...

Skrypty

• uruchamianie skryptu:

◦ bash <nazwa_skryptu> uruchomienie jawne

◦ chmod u+x <nazwa_skryptu> zmiana uprawnie«

./<nazwa_skryptu> uruchomienie niejawne

◦ bash -x <nazwa_skryptu> wypisanie wykonywanych polece«

• echo polecenie drukowania znaków na standardowym wyj±ciu, np.

echo URUCHAMIAM SKRYPT...;

ls -al;

echo KONCZE SKRYPT...;

• wyliczanie warto±ci wyra»e«

◦ polecenie expr, np.

expr 2 + 2

◦ polecenie $[], np.

echo $[ 2 + 2 ]

◦ polecenie $(()), np.

echo $(( 2 + 2 ))

1

c

° Paweª Rembelski

Systemy operacyjne materiaªy ¢wiczeniowe

Studia dzienne PJWSTK

• testowanie warunków

◦ polecenie expr, np.

expr 2 = 2

Uwaga! W przypadku testowania warunków, polecenie expr jest maªo efektywne.

◦ polecenie test, np.

test 2 -eq 2

Uwaga! Wynik zwracany przez kod wyj±cia polecenia.

◦ polecenie [], np.

[ 2 -eq 2 ]

Uwaga! Wynik zwracany przez kod wyj±cia polecenia.

• instrukcja warunkowa

if <test warunku>; then

<ci¡g instrukcji>;

fi

albo

if <test warunku>; then

<ci¡g instrukcji>;

else

<ci¡g instrukcji>;

fi

np.

echo URUCHAMIAM SKRYPT...;

if [ `pwd | wc -c` -ge 10 ]; then

echo KONCZE SKRYPT (1)...;

else

echo KONCZE SKRYPT (2)...;

fi

Zadania

1. Napisz skrypt, który zliczy wszystkie rozsze»enia plików nieukrytych znajduj¡cych si¦ w aktualnym katalogu (zakªadamy, »e pierwszy znak . rozpoczyna rozsze»enie pliku).

2. Napisz skrypt, który wypisze liczb¦ wszystkich niewidocznych plików i katalogów (zaczynaj¡cych si¦ znakiem .) znajduj¡cych si¦ w aktualnym katalogu.

3. Napisz skrypt, który wypisze liczb¦ wszystkich plików z rozsze»eniem txt w poddrzewie aktualnego katalogu (ª¡cznie z plikami w katalogu korzeniu).

4. Napisz skrypt, który wypisze pierwsze trzy litery nazw plików posortowanych wzgl¦dem minut czasu ich utworzenia.

5. Napisz skrypt, który wypisze posortowane minuty czasów utworzenia 75% (w zaokr¡gleniu do doªu) najwi¦kszych plików w bie»¡cym katalogu.

6. Napisz skrypt, który wypisze nazwy plików znajduj¡cych si¦ w aktualnym katalogu zaczynaj¡ce si¦

od dowolnej litery od c do z a nast¦pnie dowolnej liczby liter a (tak»e zerowej).

7. Napisz skrypt, który wypisze pierwsze trzy liter nazw plików znajduj¡cych si¦ w aktualnym katalogu o nieparzystych numarach miejsc wyznaczonych przez sortowanie leksykograczne.

2

c

° Paweª Rembelski

Systemy operacyjne materiaªy ¢wiczeniowe

Studia dzienne PJWSTK

8. Napisz skrypt, który wypisze 0 je»eli w aktualnym katalogu suma znaków tworz¡cych nazwy wszystkich plików (wraz z ich rozsze»eniami) jest nieparzysta, wypisze 1 w p.p.

9. Napisz skrypt, który wypisze liczb¦ wszystkich plików w poddrzewie aktualnego katalogu (ª¡cznie z plikami w katalogu korzeniu), je»eli liczba plików wyst¦puj¡cych bezpo±rednio w aktualnym katalogu równa jest liczbie jego bezpo±rednich podkatalogów.

10. Napisz skrypt, który je»eli aktualny katalog zawiera bezpo±rednio co najmniej jeden plik, to wypisze liczb¦ wszystkich podkatalogów w poddrzewie aktualnego katalogu.

3

c

° Paweª Rembelski