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

Hasonló dokumentumok
AWK programozás Bevezetés

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

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

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

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

Szkriptnyelvek. 1. UNIX shell

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

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

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

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.

1. Alapok. #!/bin/bash

A C# programozási nyelv alapjai

Operációs Rendszerek Gyakorlat

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

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

Operációs rendszerek gyakorlat

Operációs rendszerek gyak.

Rendszerprogramozás Linux környezetben

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

Flex tutorial. Dévai Gergely

Készítette: Nagy Tibor István

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

Java II. I A Java programozási nyelv alapelemei

Operációs rendszerek. 4. gyakorlat. BASH bevezetés, script írása, futtatása UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

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

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

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.

Webprogramozás szakkör

Bevezetés a programozásba I.

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

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

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

A JavaScript főbb tulajdonságai

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

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

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)

PYTHON. Avagy hosszú az út a BioPythonig

Reguláris kifejezések 1.

1. Alapok. Programozás II

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

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

Java II. I A Java programozási nyelv alapelemei

Bevezetés a programozásba I.

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

A Python programozási nyelv

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

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

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

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

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

Operációs rendszerek 1.

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

Szkriptnyelvek II. Perl programok

Operációs rendszerek gyakorlat

Python tanfolyam Python bevezető I. rész

Imperatív programozás

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

4. Javítás és jegyzetek

C programozási nyelv

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

Java programozási nyelv

Informatika terméktervezőknek

Programozási nyelvek Python

Óbudai Egyetem. C programozási nyelv


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

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

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

A sed folyamszerkesztő

Komputeralgebra Rendszerek

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

7. Laboratóriumi gyakorlat, 1. rész : Vezérlési szerkezetek II.

Operációs rendszerek 1.

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

8. Laboratóriumi gyakorlat: Bevezetés a reguláris kifejezések használatába

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

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

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Apple Swift kurzus 3. gyakorlat

6. BASH programozás I.

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

A héj vezérlő szerkezetei I.

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

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

Operációs Rendszerek. Windows Parancssor

2018, Funkcionális programozás

Bevezetés a programozásba I.

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

2. Készítsen awk szkriptet, amely kiírja az aktuális könyvtár összes alkönyvtárának nevét, amely februári keltezésű (bármely év).

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

Operációs rendszerek gyakorlat

Programozási nyelvek JAVA EA+GY 1. gyakolat

Java gyakorlat feladatai e s megolda sai ( )

C programozás. 1 óra Bevezetés

Delphi programozás I.

Átírás:

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

AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá teszi a sor egyes elemeire külön alapértelmezett változóként lehet hivatkozni (az elválasztási módszert definiálni lehet), rengeteg beépített változó érhető el BASH-nél lazább szintaxis

AWK delimiter Az awk soronkénti műveletvégzést tesz lehetővé, a sorokat változókba tagolja egy delimiter által: $1 $2 $3 $4 $5... $NF (NF változó a sor mezőinek számát tárolja) Az awk alapértelmezés szerint a whitespace az elválasztás Megadható: kapcsolóval: awk -F";" -f CODEFILE FILE FS változónak értékül adva: FS = ; Delimiter lehet bármilyen karakter (akár escape) vagy reguláris kifejezés

Feladat Írjunk awk scriptet, ami összegzi a szamok.csv fájl 3. oszlopát. Figyelj oda az elválasztó jelre! Írjunk awk scriptet, ami a delim.dat fájl különböző elválasztó jelek mentén választja el. Próbáljuk ki a különböző lehetőségeket.

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 if (FELTÉTEL) { UTASÍTÁS } else if (FELTÉTEL) { UTASÍTÁS } else { UTASÍTÁS } while (FELTÉTEL) {} do {} while (FELTÉTEL)

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!!)

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).