Cvičení - 09 - regulární výrazy



Úloha 1:

Vytvořte:
'''(a)''' Script, který spočítá výskyt slova zadaného parametrem.
Např:
echo "test abc ijk no a takn test, testo, ttt"|spocitejVyskyt.sh test
bude mít výstup "2"

  • Slova jsou oddělena jakýmkoliv nepísmenným znakem (zkuste pro tentorkrát do písmen nějak vložit i česká písmenka s diakritikou - musíte mít správně nakonfigurovaný terminal (utf-8))
  • Pozor: zadané slovo může být vícekrát na stejné řádce
  • Otázka: Jak to udělat, aby to bylo case-insensitive (nerozlišovalo velikost písmenek)?
  • Pozor: Určitě skript s parametrem ''na'' nezapočítá slovo ''ananas'' (jednou či dvakrát)?


'''(b)''' Modifikujte předchozí skript, aby nám vytisknul X nejpoužívanějších slov z textu.
Příklad výstupu:
14 a
10 se
8 na
5 v
4 to
4 jsem

  • Otázka: Jak to udělat, abychom vyfiltrovali ty nezajímavé předložky?




Úloha 2:

Vytvořte skript, kterému jako parametr zadáme uživatelské jméno, a on zobrazí
"1" - pokud máme právo zobrazit obsah domovského adresáře toho uživatele,
"0" - pokud na to právo nemáme





Úloha 3:

Důležitým prvek při programování je komentování kódu. Představte si, že pracujete v programátorském týmu, a chcete porovnat, kdo komentuje více a kdo méně.

Vytvořte tedy skript, který jako vstup dostane zdrojový kód programu v jazyce C.
Výstupem bude, kolik procent ze souboru tvoří komentáře.

  • Komentáře v C jsou dvojího druhu: Mezi ''/*'' a ''*/'' může být víceřádkový, dvě lomítka ''//'' znamenají začátek komentáře až do konce řádku. Více na Wikipedii (cs)
  • Dejte pozor, aby se například u kódu

/* Zacatek komentare //AHOJ tady je take komentar */

nezapočítalo slovo AHOJ dvakrát.

  • Vyberte si, poměr jakých věcí vlastně děláte - zda počtu znaků celkem/v komentářích; počtu neprázdných znaků, počtu slov... ?