C2110 Operační systém UNIX základy programování 12. lekce / modul 1 PS/2021 Prezenční forma výuky: Rev2 Petr Kulhánek kulhanek@chemi.muni.cz Národní centrum pro výzkum biomolekul, Přírodovědecká fakulta Masarykova univerzita, Kamenice 5, CZ-62500 Brno Dperační systém UNIX a základy programování 12. lekce / modul 1 Obsah > AWK • Podmínky, logické operace * Řízení běhu (next, exit) Dperační systém UNIX a základy programování 12. lekce / modul 1 Podmínky if( logicky_vyraz ) { prikaz2; • • • } else { prikaz3; } Pokud je logicky_vyraz pravda, vykoná se prikaz2. V opačném případě se vykoná prikaz3. Příklad: if ( $1 > max ) { max = $1; } Rozdíly vůči jazyku BASH \—L if prikazl; then prikaz2 else prikaz3 fi Dperační systém UNIX a základy programování 12. lekce / modul 1 Logické operátory Operátory: < <= > >= i m && rovna se nerovná se menší než menší než nebo rovno vetsi nez větší než nebo rovno negace logické ano logické nebo Příklady: j > 5 (j > 5) (j <= 5) && (j < 10) II (j >= 10) Dperační systém UNIX a základy programování 12. lekce / modul 1 Cvičení 1 1. Napište skript, který vytiskne největší a nejmenší hodnotu ze třetího sloupce souboru matice.txt. 2. Napište skript, který vytiskne ze souboru rst.out řádky, které obsahují devět slov. 3. Napište skript, který vypočítá průměrnou hodnotu čísel uvedených v druhém sloupci souboru matice.txt. Data jsou v adresáři: /home/kulhanek/Documents/C2110/Lessonl2 Dperační systém UNIX a základy programování 12. lekce / modul 1 Cvičení 2 1. Napište skript, který spočítá geometrický střed molekuly uložené ve formátu xyz. Výsledné souřadnice budou vytištěny do terminálu. Název souboru uživatel zadá jako první argument skriptu. Ošetřete situaci, kdy je zadán špatný počet argumentů a kdy zadaný soubor neexistuje. Vstupní soubor je v adresáři geom. Nápověda: • Formát souboru xyz na prvním řádku uvádí počet atomů, na druhém řádku libovolný komentář a další řádky obsahují prvek atomu a jeho souřadnice x, y a z. • K odstranění prvních dvou řádků můžete využít libovolnou kombinaci příkazů cat, wc, head a tail. Případně se inspirujte na manuálových stránkách příkazu tail. Dperační systém UNIX a základy programování 12. lekce / modul 1 -6- Klíčové slovo next ukončí zpracovávání aktuálního záznamu. Dále se pokračuje následujícím záznamem. Dperační systém UNIX a základy programování 12. lekce / modul 1 Klíčové slovo exit ukončí zpracovávání aktuálního záznamu a všech následujících souborů. 12. lekce / modul 1 -8- Cvičení 3 1. Ze souboru rst.out vyextrahujte průběh teploty a spočítejte její průměrnou hodnotu. Vypočtenou hodnotu srovnejte s průměrnou hodnotou uvedenou v souboru rst.out. Proč se hodnoty liší? Data jsou v adresáři: /home/kulhanek/Documents/C2110/Lessonl2 Operační systém UNIX a základy programování 12. lekce / modul 1