AWK programozás, minták, vezérlési szerkezetek

Hasonló dokumentumok
AWK programozás, minták, vezérlési szerkezetek

AWK programozás Bevezetés

Szűrők, reguláris kifejezések AWK programozás: minták, vezérlési szerkezetek, tömbök, beépített függvények, reguláris kifejezések

Szűrők Reguláris kifejezések, AWK

Operációs rendszerek gyak.

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

BASH script programozás II. Vezérlési szerkezetek

Operációs rendszerek. 10. gyakorlat. AWK - bevezetés UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs Rendszerek II. labor. 2. alkalom

Szkriptnyelvek. 1. UNIX shell

A C# programozási nyelv alapjai

BASH SCRIPT SHELL JEGYZETEK

S z á m í t ó g é p e s a l a p i s m e r e t e k

length (s): Az s karaklerlánc hossza, substr(s,m,n): Az s mezőben levő karakterláncnak az m-edik karakterétől kezdődő, n darab karaktert vágja ki.

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

Java II. I A Java programozási nyelv alapelemei

1. Alapok. #!/bin/bash

Rendszerprogramozás Linux környezetben

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Flex tutorial. Dévai Gergely

Bevezetés a programozásba I.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Webprogramozás szakkör

Java II. I A Java programozási nyelv alapelemei

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Occam 1. Készítette: Szabó Éva

Készítette: Nagy Tibor István

1. Jelölje meg az összes igaz állítást a következők közül!

Bánsághi Anna 2014 Bánsághi Anna 1 of 68

Operációs rendszerek gyak.

Java programozási nyelv

Óbudai Egyetem. C programozási nyelv

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

PHP alapjai, bevezetés. Vincze Dávid Miskolci Egyetem, IIT

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

A JavaScript főbb tulajdonságai

Python tanfolyam Python bevezető I. rész

Munka állományokkal. mv: áthelyezés (átnevezés) rm: törlés. rmdir: üres könyvtár törlése. -r, -R: rekurzív (könyvtár) -r, -R: rekurzív (könyvtár)

Bevezetés jogosultságkezelés, csővezeték, átirányítások. BASH script programozás

Forráskód formázási szabályok

Bevezetés a programozásba I.

Operációs rendszerek. 9. gyakorlat. BASH recap, reguláris kifejezések UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek 2 3. alkalom - Reguláris kifejezések, grep, sed. Windisch Gergely windisch.gergely@nik.uni-obuda.hu

Operációs Rendszerek Gyakorlat

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Tájékoztató. Használható segédeszköz: -

A C programozási nyelv II. Utasítások. A függvény.

Informatika terméktervezőknek

Imperatív programozás

C programozás. 1 óra Bevezetés

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r

Komputeralgebra Rendszerek

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Python bevezető foglalkozás Python bevezető foglalkozás

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

A Python programozási nyelv

Apple Swift kurzus 3. gyakorlat

Operációs rendszerek gyakorlat

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

8. Mezőutasítások. Schulcz Róbert 8. Mezőutasítások. v

Programozás alapjai. 5. előadás

2018, Funkcionális programozás

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE cím: Név: Kurzuskód:

Operációs rendszerek 1.

Operációs rendszerek 1.

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Operációs rendszerek. 9. gyakorlat. Reguláris kifejezések - alapok, BASH UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

C programozási nyelv

Delphi programozás I.

Bevezetés a programozásba I.

Munka állományokkal, könyvtárakkal I.

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Reguláris kifejezések 1.

Vezérlési szerkezetek

Programozási nyelvek Python


6. BASH programozás I.

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

Operációs rendszerek 2 1. óra: Linux alapok Ismétlés. Windisch Gergely félév

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

Pásztor Attila. Algoritmizálás és programozás tankönyv az emeltszintű érettségihez

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

Smalltalk 2. Készítette: Szabó Éva

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

Operációs rendszerek gyakorlat

1. Alapok. Programozás II

Szkriptnyelvek II. Perl programok

PYTHON. Avagy hosszú az út a BioPythonig

Programozás Minta programterv a 1. házi feladathoz 1.

Programozási nyelvek JAVA EA+GY 1. gyakolat

Kifejezések. Kozsik Tamás. December 11, 2016

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Operációs rendszerek I. - UNIX felhasználói ismeretek és héjprogramozás. Az awk

Átírás:

10 AWK programozás, minták, vezérlési szerkezetek

AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás nélkül beírod a programkódot ez rettentően nehezen olvashatóvá teszi az egészet, csak a legegyszerűbb feladatok esetén javasolt!!! AWK programkód külső fájlból beolvasva: awk -f CODEFILE FILE ez a legkézenfekvőbb AWK program, mint futtatható AWK script: parancsértelmező fejrész megadása: #! /usr/bin/awk -f (ha nem ismeri akkor locate bin/awk)./awk_script FILE Feladat: HelloWorld AWK futtatása ls -l kimenetén

Kifejezések +,, *, /, %, ^ ++, - - egymás mellé írás (string konkatenáció) mezőhivatkozás ($KIF) =, +=, -=,*=, /=, %=, ^= <, <=, >, >=, ==,!= (stringek esetén lexikografikus) valtozo ~ / REGKIF /, valtozo!~ / REGKIF / INDEX in TÖMB (tömbindex létezése, true or false)!, &&, KIF1? KIF2 : KIF3

Egyszerű változók jelölése kisbetűkkel értékadás, hivatkozás C-hez hasonlóan dinamikusak: első használatkor jönnek létre típusuk az alapján állítódik be, amit értékül adunk: numerikus szöveges tömb A szám szöveggé, a szöveg számmá automatikusan konvertálható (ha nem sikerül akkor 0) de ez manuálisan is elvégezhető, kikényszeríthető: str+0 (szöveg számmá) num (szám szöveggé)

Változó értékek Szám: egész: 12 valós, tizedesponttal: 12.0 valós, lebegőpont: 1.2e+1 Szöveg: SZOVEG\n (escape karakterek használhatóak) üres string:

Beépített változók $1 $2 $3 (módosíthatók, $-el ellátott változóval is hivatkozhatunk ezekre: $i) $0 az egész sor egyben NF number of fields NR aktuális sor azonosítója FNR több fájl esetén fájlonkénti aktuális sorának azonosítója FILENAME bemeneti fájl neve (amit feldolgozunk) FS delimiter (alapértelmezés szerint szóköz) OFS kimeneti delimiter (alapértelmezés szerint szóköz) RS sorhatároló karakter (alapértelmezetten \n) ORS kimeneti sor delimiter (alapértelmezetten \n) IGNORECASE ha nem nulla, akkor azonosak a kis és nagybetűk (alapértelmezés szerint mindig nulla) Feladat: próbáljuk ki a beépített változók viselkedését

egy AWK program felépítése Szabályokból épül fel: MINTA{ AKCIÓ1; AKCIÓ2; } ha elhagyjuk a MINTA-t, akkor minden sorra végrehajtja ha elhagyjuk a { AKCIÓ }-t akkor a MINTA teljesülése esetén {print $0} fog végrehajtódni (ha nem akarunk semmit, akkor {} -et kell hagynunk a MINTA után) Egyes parancsok végét ; -el jelöljük (soronként tagolva ez elhagyható) Nem érzékeny a szóköz, TAB tagolásra: akár az egész programkódot írhatjuk egyetlen sorba, de szét is tagolhatjuk valamilyen kódformázási protokoll alapján Kommentelés: #

Minták Soronkénti feltétel, ha teljesül, akkor végrehajtódik a blokk, különben nem. A változók felhasználhatóak a minta megadásakor Elemi minták: MINTA: relációs kifejezés (MINTA)! MINTA / REGKIF / ha a reguláris kifejezés illeszkedik a sorban BEGIN : awk program indulásakor elsőként fut le END : awk program végén a kilépés előtt utoljára lefutó rész Nem kombinálhatóak más mintákkal Összetett minták: &&,

Minták Soronként ellenőrzi és megadási sorrend alapján: BEGIN{ AKCIÓ1; AKCIÓ2; } MINTA1{ AKCIÓ1; AKCIÓ2; }... MINTAn{ AKCIÓ1; AKCIÓ2; } END{ AKCIÓ1; AKCIÓ2; } Feladat: 1) Köszöntő üzenet, számoljuk össze a sorokat és csak a végén írjuk ki. 2) Írjuk ki az első sor kivételével az összes sort 3) Az ls -l kimenetéből szűrjük ki a könyvtárakat és csak a nevüket írjuk ki

Vezérlési szerkezetek for (KIF1; KIF2; KIF3;) {} for (INDEX in NÉV) {} nem sorrendben járja be a tömböt! csak ha nem számít a sorrend, pl: halmaz break, continue exit (ha nem az END-ben van, akkor az END szekció még lefut!!)

Vezérlési szerkezetek if (FELTÉTEL) { UTASÍTÁS } else { UTASÍTÁS } while (FELTÉTEL) {} do {} while (FELTÉTEL)

Feladatok 1) Azokat a sorokat írjuk ki, ahol az utolsó elem 120000-nél nagyobb és a végén hogy hány ilyen van. 2) Azokat a sorokat írjuk ki és számoljuk meg, ahol az elemek összege 700000-nél nagyobb 3) A 2)-pontban megkapott sorok elemeinek összegének az átlagát írjuk ki (egyszer, a végén).