AWK programozás Bevezetés

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

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

Szkriptnyelvek. 1. UNIX shell

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

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

BASH SCRIPT SHELL JEGYZETEK

Operációs Rendszerek Gyakorlat

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

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

Rendszerprogramozás Linux környezetben

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

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

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

Operációs rendszerek gyak.

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

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

Készítette: Nagy Tibor István

Operációs rendszerek gyakorlat

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

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

Reguláris kifejezések 1.

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

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)

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

4. Javítás és jegyzetek

A C# programozási nyelv alapjai

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.

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

Flex tutorial. Dévai Gergely

Java II. I A Java programozási nyelv alapelemei

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

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

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

Operációs rendszerek gyakorlat

Operációs rendszerek 1.

6. BASH programozás I.

1. Alapok. Programozás II

Bevezetés a programozásba I.

Regionális forduló november 19.

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

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

Programozási nyelvek II. JAVA

Regionális forduló november 19.

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

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

Webprogramozás szakkör

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

Operációs rendszerek gyakorlat

MATLAB. 9. gyakorlat. Cellatömbök, struktúrák, fájlműveletek


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

LEI kód igénylési folyamat leírása

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

Python tanfolyam Python bevezető I. rész

Java gyakorlat feladatai e s megolda sai ( )

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

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

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

A JavaScript főbb tulajdonságai

Megjegyzés: A programnak tartalmaznia kell legalább egy felhasználói alprogramot. Példa:

Java II. I A Java programozási nyelv alapelemei

Bevezetés a programozásba I.

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

8. Gyakorlat AWK 1, CSS

Operációs Rendszerek Gyakorlat Triviális segédfeladatok június PERL Tömbök és hashek Feladat: május 26-i beugró

Operációs Rendszerek példatár. Utolsó frissítés: február 10.

Mérnöki programozás 8. Szerkesztette: dr. Vass Péter Tamás

PYTHON. Avagy hosszú az út a BioPythonig

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

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

Operációs Rendszerek. Windows Parancssor

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

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

A legfontosabb DOS parancsok

Írjon olyan programot a standard könyvtár alkalmazásával, amely konzolról megadott valós adatokból meghatározza és kiírja a minimális értékűt!

Bevezetés a Python programozási nyelvbe

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

Programozás(A szakirány) II. beadandó feladat Farkas András HP6S15 1. csoport Veszprémi Anna / Hudoba Péter

chmod umask chown, chgrp

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

C programozási nyelv

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

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

Objektumorientált Programozás V.

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Operációs rendszerek 1.

Bevezetés a programozásba I.

A C programozási nyelv I. Bevezetés

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

A sed folyamszerkesztő

Operációs rendszerek gyakorlat

WEB PROGRAMOZÁS 3.ELŐADÁS. Űrlapok

I. Felzárkoztató Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

UNIX/héjprogramozás - awk. Az awk

Átírás:

09 AWK programozás Bevezetés

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