AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeri

Seotud dokumendid
Failiotsing: find paljude võimalustega otsingukäsk find kataloog tingimused kataloog - otsitakse sellest kataloogist ja tema alamkataloogidest tingimu

MTAT Operatsioonisüsteemid - Turvalisus

PHP

PowerPointi esitlus

(loeng3-ohtlikud_koodiloigud)

MTAT Operatsioonisüsteemid - Turvalisus

Funktsionaalne Programmeerimine

loeng2

Programmeerimiskeel APL Raivo Laanemets 17. mai a.

Mida räägivad logid programmeerimisülesande lahendamise kohta? Heidi Meier

loeng7.key

X Window System tuntud kui: X11 X X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesugus

SQL

DIGITAALTEHNIKA DIGITAALTEHNIKA Arvusüsteemid Kümnendsüsteem Kahendsüsteem Kaheksandsüsteem Kuueteistkü

Word Pro - diskmatTUND.lwp

Pealkiri

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Infix Operaatorid I Infix operaatorid (näiteks +) ja tüübid (näiteks ->) kirjutatakse argumentide vahele, mitte argumentide ette. Näiteks: 5 + 2, 2*pi

Word Pro - digiTUNDkaug.lwp

Loeng03

Scala ülevaade 1 Meetodid, muutujad ja väärtused. Süntaks 2 Lihtsad tüübid ja väärtused. 3 OOP, case-klassid ja mustrisobitus. 4 Puhta Scala väärtusta

Excel Valemite koostamine (HARJUTUS 3) Selles peatükis vaatame millistest osadest koosnevad valemid ning kuidas panna need Excelis kirja nii, et

TARTU ÜLIKOOL MATEMAATIKA-INFORMAATIKATEADUSKOND Arvutiteaduse instituut Infotehnoloogia eriala Roman Jagomägis Programmeerimiskeel privaatsust säilit

untitled

Kfloppy vormindamistööriista käsiraamat

Andmed arvuti mälus Bitid ja baidid

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

Microsoft Word - installation-guide.doc

MOOCi „Programmeerimise alused“ ülesannete lahenduste analüüs

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

Funktsionaalne Programmeerimine

Regressioonanalüüsi kodutöö Indrek Zolk 30. mai a. 1 Andmestiku kirjeldus Käesoleva kodutöö jaoks vajalik andmestik on saadud veebiaadressilt ht

Microsoft Word - requirements.doc

1 / loeng Tekstitöötlus Sisend/väljund Teksti lugemine Sõnad

Pealkiri

E-arvete juhend

lvk04lah.dvi

G aiasoft Programmi VERP ja Omniva Arvekeskuse liidese häälestamine ja arvete saatmine-lugemine VERP 6.3 ja VERP 6.3E Versioon ja hilisemad K

ITI Loogika arvutiteaduses

FIDE reitingumäärus 1. juuli 2014 Kuremaa, Marek Kolk

Matemaatiline analüüs IV 1 3. Mitme muutuja funktsioonide diferentseerimine 1. Mitme muutuja funktsiooni osatuletised Üleminekul ühe muutuja funktsioo

UNIXi käsurida Koostanud: Indrek Zolk Dokumendi versioon: 5 Kompileerimise kuupäev: 25. september a. Tartu Kunstigümnaasium Tartu 2005

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

Diskreetne matemaatika I Kevad 2019 Loengukonspekt Lektor: Valdis Laan 20. juuni a.

1. AKE Ajalise keerukuse empiiriline hindamine

Microsoft Word - Referaat.docx

Andmeturve

GRUPI-SMS Veebirakenduse kasutamise juhend Rakendus Elisa grupi-smsi rakendus Väljaandja Elisa Eesti AS Juhendi koostamise kuupäev Versioon

Automaatjuhtimise alused Automaatjuhtimissüsteemi kirjeldamine Loeng 2

PRESENTATION HEADER IN GREY CAPITALS Subheader in orange Presented by Date Columbus is a part of the registered trademark Columbus IT

TARTU ÜLIKOOL LOODUS- JA TÄPPISTEADUSTE VALDKOND ARVUTITEADUSE INSTITUUT Lauri Kongas Turvaauk CVE Referaat aines Andmeturve MTAT Õpp

Microsoft Word - Toetuste veebikaardi juhend

Linux süsteemi administreerimine

Tehniline andmeleht Sadulventiilid (PN 16) VRG 2 2-tee ventiil, väliskeermega VRG 3 3-tee ventiil, väliskeermega Kirjeldus Ventiilid on kasutatavad ko

Võrguinverterite valik ja kasutusala päikeseelektrijaamades Robert Mägi insener

IMO 2000 Eesti võistkonna valikvõistlus Tartus, aprillil a. Ülesannete lahendused Esimene päev 1. Olgu vaadeldavad arvud a 1, a 2, a 3,

VRG 2, VRG 3

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

Microsoft Word - Errata_Andmebaaside_projekteerimine_2013_06

raamat5_2013.pdf

Polünoomi juured Juure definitsioon ja Bézout teoreem Vaadelgem polünoomi kus K on mingi korpus. f = a 0 x n + a 1 x n a n 1 x

Word Pro - digiTUNDkaug.lwp

Microsoft Word - TallinnLV_lihtsustatud_manual_asutuse_juhataja_ doc

I Generaatori mõiste (Java) 1. Variantide läbivaatamine Generaator (ehk generaator-klass) on klass, milles leidub (vähemalt) isendimeetod next(). Kons

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Materjalid koostas ja kursuse viib läbi Tartu Ülikooli arvutiteaduse instituudi programmeerimise õpetamise töörühm 6.1 Regulaaravaldis Eelnevates osad

StandardBooks_versiooni_uuendusWin

Skriptid ja käsud

Outlookist dokumendi registreerimine Plugina seadistamine Dokumendi registreerimine Outlookist Vastusdokumendi registreerimine Outlookist Outlooki plu

Tartu Kutsehariduskeskus Teksti sisestamine Suurem osa andmetest saab sisestatud klaviatuuril leiduvate sümbolite abil - tähed, numbrid, kirjavahemärg

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

Uudiseid k-meride abil bakterite leidmisest [Compatibility Mode]

Kom igang med Scratch

Maksu- ja Tolliamet MAKSUKOHUSTUSLANE Vorm KMD INF Nimi Registri- või isikukood A-osa ANDMED VÄLJASTATUD ARVETE KOHTA. Esitatakse koos käibedeklaratsi

SQL

Microsoft PowerPoint - EMCS13

Microsoft Word - 56ylesanded1415_lõppvoor

Microsoft Word - RM_ _17lisa2.rtf

Kobras 2015/2016 lõppvoor, benjaminid

Teenuste hinnakiri Kontohalduri nimi: Coop Pank AS Konto nimi: arvelduskonto Kuupäev: Käesolevas dokumendis on esitatud tasud maksekontoga

P9_10 estonian.cdr

Monitooring

X Window System tuntud kui: X11, X, X-Windows akendussüsteem/akendesüsteem rastergraafikat toetavatele ekraanidele UNIX-maailmas väga levinud mitmesug

PowerPoint Presentation

Sügis 2018 Kõrgema matemaatika 2. kontrolltöö tagasiside Üle 20 punkti kogus tervelt viis üliõpilast: Robert Johannes Sarap, Enely Ernits, August Luur

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

Mining Meaningful Patterns

HWU_AccountingAdvanced_October2006_EST

Microsoft PowerPoint - Lisa 5 koolituse materjalid

Microsoft Word - QOS_2008_Tallinn_OK.doc

Tartu Ülikool

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

TARTU ÜLIKOOL Arvutiteaduse instituut Informaatika õppekava Mirjam Iher Nõrgima eeltingimuse staatiline analüüs pinukeeltele Bakalaureusetöö (9 EAP) J

Matemaatiline maailmapilt MTMM Terje Hõim Johann Langemets Kaido Lätt 2018/19 sügis

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

Kuidas ärgitada loovust?

Microsoft Word _se-et_ok_korr_C.doc

Väljavõte:

AWK Aho Weinberger Kernighan struktuurse teksti töötlemise keel rikkalikult tekstitöötlusvahendeid omal alal suhteliselt lihtne ja kiiresti realiseeritav

AWK kasutusalad raportite genereerimine ühest formaadist teise konvertimine arvuliste andmete matemaatiline (statistiline) töötlemine lihtsate tekstil baseeruvate andmete/andmebaaside haldamine

AWK 1977 AT&T Bell Labs 1985 - uus versioon, mitmed täiendused, SVR 3.1 SVR 4, POSIX standardid 1986 - GNU Awk, gawk - P.Rubin, A. Robbins nawk vs. oawk mawk - M. Brennan

awk programmi üldkuju: tingimus { käsud } tingimus { käsud }... tingimused jaotuvad: otsingusõna (/otsisõna/) loogiline avaldis ( MYVAR > 2 ) spetsiaalkonstruktsioon (BEGIN, END) vahemik ( tingimus1, tingimus2 )

awk iga sisendrea korral vaadatakse kõiki tingimusi kui tingimus on täidetud, täidetakse vastav käsublokk tühi tingimus on täidetud

awk käivitamine: > awk 'programm' fail1 fail2.. > awk -f programmfail sisendfailid käsurealt käivitades oluline jälgida ', tasakaalu

awk - esimesed sammud BEGIN { print Tere! } { print } NR > 2 && NR < 5 {print} /märts/ {loendur++} # kommentaar

esimesed näited awk

gawk - muutujad sissehitatud muutujad FS, OFS - väljaeraldaja RS, ORS - kirjeeraldaja ARGC, ARGV - (käsurea)argumendid NF - veergude arv NR - rea (kirje) number $1 - $N - veergude väärtused $0 - terve sisendkirje Näide

gawk - muutujad väärtustamine muutuja = väärtus kasutamine: { print muutuja } väärtustamisoperaatorid: muutuja++ muutuja-- ++muutuja muutuja+=avaldis

gawk - massiivid väärtustamine massiiv[indeks]=väärtus kasutamine {print massiiv[indeks]} kontrollimine indeks in massiiv delete Näide

gawk - regulaaravaldised otsisõne - regulaaravaldisena /märts apr/ {print mingiveerg} standardsed regulaaravaldised + laiendused loogiline operaator ~ avaldis ~ /regavaldis/

gawk - tõeväärtused mitte-null, mitte-tühi: tõene null, tühi: väär && - loogiline JA - loogiline VÕI! - eitus Näide

gawk - sisendi lugemine sisendfailide järjekord muutuja FILENAME sisendkirjed ja RS sisendväljad ja FS eraldajad mittekonstantne indeks {print $(2+2)}

gawk - funktsioone print printf - C stiilis next järgmine kirje nextfile järgmine fail exit

gawk funktsioone mat. funktsioonid int,sqrt,sin,rand jms sõnetöötlusfunktsioonid length, index, match, split, sub, substr jms sisend-väljund close, system bititasemel loogika and, or, xor, not, lshift...

gawk - konstruktsioone if (tingimus) käsk else käsk while (tingimus) käsk

gawk - konstruktsioone for (algv; lõpp; suurend) käsk for (muutuja in massiiv) käsk do käsk while (tingimus)

gawk - konstruktsioone for, while, do-while: break continue

gawk - konstruktsioone switch (avaldis) { } case väärtus: käsk default: käsk

gawk - kasutussoovitusi awk sobib ennekõike siis, kui ühes sisendreas täpselt üks sisendkirje tuleb harjuda põhimõttega, et (peaaegu) kõik read täidetakse iga sisendrea korral uuesti vahel on kasulik kirjutada oma awk-programmile sh-mähis interpreteeritav keel - ei sobi väga mahukateks projektideks

gawk: kasutaja funktsioonid defineerimine definitsioon võib asuda koodis suvalises kohas defineerimise järjekord pole tähtis function funktsiooni_nimi(param) { } sisu

gawk:kasutaja funktsioonid parameetrid argumendid kohalikud muutujad function linkprint(a,b, c) { } c="fail: %s \t Linke: %d\n" printf c,b,a

gawk:kasutaja funktsioonid välja kutsumine $2 > 1 {linkprint($2,$9)} Näide parameetriks muutuja: call by value parameetriks massiiv: call by reference Näide

gawk: kasutaja funktsioonid väärtuse tagastamine return avaldis return ilma avaldiseta: funktsiooni töö lõpetatakse, tagastusväärtus defineerimata return puudub: awk eeldab, et kutsuti return ilma avaldiseta Näide

gawk:tekstitöötlusfunktsioone asort(array) - sortimine index(in,find) - alamsõne find algusindeks sõnes in length(string) - sõne pikkus match(string, regex) - reg. avaldisele vastava alamsõne (vasakult poolt, pikim) indeks split(string,array,sep) - tükeldab sõne, eraldajaks sep, tulemus massiivi

gawk:tekstitöötlusfunktsioone strtonum(string) sõne arvuks sub(regexp, asendus, string) asendab stringis reg. avaldisega vasakpoolseima leitud otsisõne gsub(regexp,asendus,string) asendab kõik leitud mittekattuvad otsisõned

gawk:tekstitöötlusfunktsioone substr(string, start, length) kindla pikkusega/positsiooniga alamstringi leidmine tolower(string), toupper(string) suurtähtede/väiketähtede konversioon

gawk: printf printf vorming,muutujad/avaldised { p= kolmapäev n=3 printf Täna on:%s, see on %d. päev nädalas,p,n }

gawk: printf { fmt= Täna on:%s, see on %d. päev nädalas,p,n p= kolmapäev printf fmt,p,1+2 }

gawk:printf vorming võib sisaldada: tavaline tekst vorminguelemendid näitab, kuhu asendada parameetriks olevad muutujad, kuidas neid vormindada vormingulemente: %d - täisarv %s - string %f - ujukomaarv

gawk:printf vorminguelementidele saab anda täpsustusi: %.10d - täisarv, min. 10 kohta %.10f - ujukomaarv, vähemalt 10 kohta peale koma %10s - string, minimaalselt 10 märki lai %.10s - string, maksimaalselt 10 märki lai %s$2 - positsiooniline täpsustus, kasutatakse muutujat/avaldist, mis on antud teise parameetrina peale vormingut

gawk:printf sprintf printf stringi Näide

gawk:profileerimine lihtne gawk profileerija: pgawk loendab iga käsu / konstruktsiooni väljakutseid tingimuslausete ja reg. avaldiste puhul kaks näitajat: väljakutsete arv tingimuse täidetuste arv väljund ümberformaaditud

gawk:profileerimine pgawk -f programm andmefail väljund awkprof.out pgawk -W profile=proffail -f programm andmefail

gawk:profileerimine kasulik testimisel kas testikomplekt on piisav, läbitakse iga koodirida? kasulik optimeerimisel millises koodi osas veedetakse rohkem samme (aega pgawk kahjuks ei mõõda) Näide

gawk:getline paindlik, sõltumatu sisendi lugemine algaja võiks esialgu hoiduda, vähemalt teatud vormidest ilma argumentideta: loeb järgmise kirje kohe getline väärtustab $0, NF, FNR, NR lugemine muutujasse getline var Väärtustab var, FNR, NR

gawk:getline lugemine failist: loeb järgmise kirje failist getline < file väärtustab $0, NF lugemine failist muutujasse: loeb järgmise kirje failist muutujasse getline var < file väärtustab var

gawk:getline lugemine torust: command getline väärtustab $0,NF lugemine torust muutujasse: command getline var väärtustab var

gawk:getline lugemine kahepoolsest torust: command & getline väärtustab $0, NF lugemine kahepoolsest torust muutujasse: command & getline var väärtustab var

gawk:kahesuunaline toru suhtlemiseks välise programmiga saab anda välisele programmile sisendit saab lugeda selle programmi väljundit käsk & välineprogramm välineprogramm & käsk

gawk:kahesuunaline toru BEGIN { kask= bc printf %d+%d\nquit\n,3,3 & kask kask & getline vastus print vastus } Näide

gawk:kahesuunaline toru kergesti võib tekkida lukusituatsioon teised osapooled ei pruugi oma väljundpuhvrit tühjendada (flush) meie programm ootab väliselt programmilt sisendit, kuid see on väljundpuhvrist väljundisse lükkamata väline programm ootab meiepoolset tegutsemist

gawk:kahesuunaline toru lahendusi lukusituatsioonile kogu sisend ühe korraga ja seejärel toru ühepoolselt kinni: sunnib välist programmi väljundpuhvrit tühjendama võimalusel kirjutada väline programm nii, et see tühjendaks väljundpuhvri gawk tühjendab & puhul puhvri, muu väljastamise korral tuleb kutsuda funktsiooni fflush()

gawk:kahesuunaline toru Näide: 2 gawk programmi suhtlevad käikude haaval, üks käik tähendab vastasele mingi arvu ütlemist, kusjuures arv peab olema suuremvõrdne vastase eelmisest käigust.