C2110 Operační systém UNIX a základy programování 12. lekce -1C2110 Operační systém UNIX a základy programování 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 12. lekce PS/2020 Distanční forma výuky: Rev3 C2110 Operační systém UNIX a základy programování 12. lekce -2Shrnutí L10 ➢ AWK C2110 Operační systém UNIX a základy programování 12. lekce -3Průběh vykonávání skriptu nový soubor ? ano ne parsuj záznam (rozděl na slova) vykonej blok inicializace Z BEGIN { } { } /VZOR/ { } END { } 1 2 3 4 finalizace nový záznam (řádek)? ne ano vykonej blok vyhovuje záznam VZORu? ano ne K uživatelský skriptlogika interpretru AWK proměnné jsou globální (pokud není určeno jinak) C2110 Operační systém UNIX a základy programování 12. lekce -4Spouštění AWK skriptů Zpracování textového souboru: $ awk –f script.awk vstup1.txt vstup2.txt $ awk –f script.awk < vstup.txt $ cat soubor.txt | awk –f script.awk awk skript analyzované textové soubory výsledek je tištěn na obrazovku Analyzovaná data lze zaslat přes standardní vstup: interpretr jazyka Nepřímé spouštění: C2110 Operační systém UNIX a základy programování 12. lekce -5- Proměnné Speciální proměnné: NF počet polí v aktuálně prováděném záznamu (Number of Fields) NR pořadí prováděného záznamu (Number of Records) $0 celý záznam $1, $2, $3 ... jednotlivé pole záznamu Hodnota proměnné: print A + C; print B; Přiřazení do proměnné: A = 10; B = "toto je text" C = 10.4567; D = A + C; znak $ umožňuje programový přístup k jednotlivým polím záznamu Příklad: for(i=1; i <= NF; i++){ sum += $i; } C2110 Operační systém UNIX a základy programování 12. lekce -6Nová látka ➢ AWK C2110 Operační systém UNIX a základy programování 12. lekce -7- Obsah ➢ AWK • Podmínky, logické operace • Řízení běhu (next, exit) • Cykly • Pole