Luento 5. Timo Savola. 28. huhtikuuta 2006



Samankaltaiset tiedostot
Luento 4. Timo Savola. 21. huhtikuuta 2006

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Luento 3. Timo Savola. 7. huhtikuuta 2006

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ohjelmoinnin perusteet Y Python

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

11. Javan toistorakenteet 11.1

Korpusten käsittely clt131, P Luento 4

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Ohjelmoinnin perusteet Y Python

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Zeon PDF Driver Trial

Kieliteknologian ATK-ympäristö Kuudes luento

Kieliteknologian ATK-ympäristö Neljäs luento

Ohjelmoinnin perusteet Y Python

Perusohje vi-editorin käyttöön

ITKP102 Ohjelmointi 1 (6 op)

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento,

Korpusten käsittely clt131, P Luento 5

Ohjelmointiharjoituksia Arduino-ympäristössä

Ehto- ja toistolauseet

811120P Diskreetit rakenteet

12. Javan toistorakenteet 12.1

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

815338A Ohjelmointikielten periaatteet Harjoitus 7 Vastaukset

Sisällys. Johdatus Linux/Unixiin: Osa 2. Prosessin tilat. Prosessien hallinta. Prosessien monitorointi

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Korpusten käsittely clt131, P Luento 3

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Komentotulkki. Kysymyksiä

JavaScript alkeet Esimerkkikoodeja moniste 2 ( Metropolia)

12. Javan toistorakenteet 12.1

Kieliteknologian ATK-ympäristö Toinen luento

Ohjelmoinnin perusteet Y Python

Muistutus aikatauluista

Ohjelmoinnin peruskurssi Y1

Sisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat

Ohjelmoinnin perusteet Y Python

Python-ohjelmointi Harjoitus 5

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Muuttujien roolit Kiintoarvo cin >> r;

Harjoitus 3 -- Ratkaisut

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Algoritmit 2. Demot Timo Männikkö

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

811120P Diskreetit rakenteet

Luento 2. Timo Savola. 31. maaliskuuta 2006

linux: Ympäristömuuttujat

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Python-ohjelmointi Harjoitus 2

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

file Opetettavissa omilla säännöillä tiedostossa /etc/magic -k tulosta kaikki useista mahdollisuuksista -L/-h seuraa/älä seuraa symbolisia linkkejä

815338A Ohjelmointikielten periaatteet Harjoitus 6 Vastaukset

Ohjelmoinnin peruskurssien laaja oppimäärä

13. Loogiset operaatiot 13.1

Hannu Valtanen Oy. Linux vi-editori

13. Loogiset operaatiot 13.1

Ctl160 Tekstikorpusten tietojenkäsittely p.1/28

[Jnix näyttökoe. o ei ole sallittua käyttää mitään verkkolevyjakoa tai mitään siihen rinnastettavaa järjestelmdä.

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

ITKP102 Ohjelmointi 1 (6 op)

5/20: Algoritmirakenteita III

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Ohjelmoinnin perusteet Y Python

2 Konekieli, aliohjelmat, keskeytykset

Ohjelmoinnin peruskurssi Y1

TAITAJA 2007 ELEKTRONIIKKAFINAALI KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

Ohjelmoinnin perusteet Y Python

Ctl160 Tekstikorpusten tietojenkäsittely Kolmas luento

Harjoitus 2: Ohjelmointi (Matlab)

Palvelinpuolen ohjelmointi

Harjoitus 2: Ohjelmointi (Matlab)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssien laaja oppimäärä

1.1 Tekstinprosessointiohjelmien yleinen toimintatapa (1)

Ohjelmoinnin perusteet Y Python

Harjoitustyön testaus. Juha Taina

1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Sormet skripteihin. 1 Mistä tässä harjoitteessa on kyse

ITKP102 Ohjelmointi 1 (6 op), arvosteluraportti

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Kieliteknologian ATK-ympäristö Kolmas luento

Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

Transkriptio:

UNIX-käyttöjärjestelmä Luento 5 Timo Savola <timo.savola@evtek.fi> 28. huhtikuuta 2006

Osa I Shell-ohjelmointi

Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke lauseke... fi Halutessa voidaan määritellä vaihtoehtoisesti suoritettavia lausekkeita if ehtolauseke then lausekkeet else vaihtoehtoiset lausekkeet fi

[ Ohjelma, jolla voi kokeilla ehdon paikkansapitävyyttä Suunniteltu käytettäväksi ehtolauseissa: if [ testi ] Merkkijonojen vertailu: [ a = b ] [ a!= b ]... Numeroarvojen vertailu: [ a -lt b ] [ a -gt b ]... Tiedostojen tarkastelu: [ -e polku ] onko olemassa [ -L polku ] onko kyseessä symbolinen linkki [ -r polku ] onko luettavissa...

Kontrollirakenteet: for for -silmukan lausekkeet suoritetaan kerran jokaista listan alkiota kohden for muuttuja in lista do lausekkeet done Lista sisältää yhden tai useamman välilyönnillä erotetun merkkijonon Esimerkkejä: for NIMI in pekka paavo liisa do mkdir kayttajat/$nimi done for TIEDOSTO in ls dokumentit do cp $TIEDOSTO varmuuskopiot/$tiedosto.bak done

Kontrollirakenteet: while while -silmukan lausekkeita suoritetaan kunnes ehto ei enää ole tosi while ehto do lausekkeet done Toimintaperiaate vastaa if -ehtolauseketta Esimerkkejä: while [ -e /proc/$pid ] do sleep 5s done echo "Prosessi $PID kuoli"

Kontrollirakenteet: case case -rakenne suorittaa merkkijonoa vastaavat lausekkeet case merkkijono in vaihtoehto ) lausekkeet ;;... esac Vaihtoehto voi olla glob pattern: *.txt) abc[12]) Vaihtoehtoja voi yhdistää -merkillä: foo bar) Esimerkki: case $TIEDOSTO in *.txt README) less $TIEDOSTO ;; *) echo "Tuntematon tiedosto" ;; esac

Kontrollirakenteet: break, continue for ja while -rakenteissa voidaan käyttää seuraavia komentoja: continue siirtää suorituksen silmukan seuraavan iteraation alkuun break keskeyttää silmukan suorituksen kokonaan Esimerkki: for VUOSI in sort vuosiluvut.txt do if [ $VUOSI -lt 1900 ] ; then continue ; fi if [ $VUOSI -gt 2006 ] ; then break ; fi echo $VUOSI done

true, false true -komento palaa aina paluuarvolla 0 Onnistui tosi false -komento palaa aina nollasta poikkeavalla paluuarvolla Virhe epätosi Esimerkki käytöstä kontrollirakenteessa: while true do ls sleep 5s done Esimerkki käytöstä ehtolauseessa: ECHO=true if $ECHO ; then echo Suoritan stat-komennon ; fi stat /tmp/foo

read read -komento on shellin sisäänrakennettu toiminto Lukee rivin syötettä muuttujiin Esimerkki: while read RIVI do echo $RIVI done read A B C echo "Sana 1: $A" echo "Sana 2: $B" echo "Loput: $C"

Funktiot Funktio määrittelee uuden komennon nimi () { lausekket } Funktiossa voidaan käyttää parametreja (kuten scripteissä): kaiuta() { echo $1 echo $2 echo $3 } Paluuarvo voidaan määritellä return -komennolla: tee-jotain() { if [ $1 = yes ]; then return 0; fi if [ $1 = no ]; then return 1; fi return 50 }

Osa II Tekstinkäsittely

Regular expressions (regex, RE) Tapa valita tekstiä Vastaa glob patterneja, mutta on paljon monipuolisempi Käytetään useissa ohjelmissa Glob-erikoismerkkien regex-vastineet:. vastaa mitä tahansa yhtä merkkiä.* vastaa mitä tahansa merkkijonoa ( yksi merkki monta kertaa ) [...] vastaa mitä tahansa sulkeiden sisällä lueteltua merkkiä Lisätietoa: regex(7) http://en.wikipedia.org/wiki/regular expression

grep Global Regular Expression Print Etsii syötteestä (tai tiedostoista) rivejä jotka vastaavat regexiä ja tulostaa ne Käyttö: grep regex grep regex tiedostot grep -komento käyttää yksinkertaistettua regex-syntaksia egrep -komento hyväksyy monimutkaisemmat regexit Esimerkkejä: grep Pekka nimet.txt cat *.txt grep P(ekka aavo) sort grep Nimi: kurssit.txt

Ed-komennot ed on UNIXin alkuperäinen tekstieditori Toi mukanaan edelleen käytössä olevat editointikomennot Komento kohdistetaan yhteen, moneen tai kaikkiin riveihin kerrallaan (osoite) Yleisiä komentoja: a Lisää tekstiä rivin jälkeen (append) i Lisää tekstiä ennen riviä (insert) c Vaihtaa rivien sisällön (change) d Poistaa rivit (delete) s Korvaa regexin valitseman tekstin (substitute)

Ed-komennot: s Korvauskomento on kätevin ja käytetyin ed-komento Syntaksi: s/regex /teksti / s/regex /teksti /g s/regex /teksti /n g tarkoittaa että kaikki rivin osumat korvataan n on korvattavan osuman järjestysnumero Osoite (kohderivit) voidaan määritellä komennon alussa: osoite s/regex /teksti / Alkuperäinen ed-ohjelma vaatii että komento alkaa pilkulla jos osoitetta ei määritellä Esimerkkejä: s/foo/bar/ s/george.*bush/amerikan presidentti/ s/vuonna 19../viime vuosisadalla/g 15s/./x/g

sed Stream EDitor Käytetään syötteen (tai tiedostojen) ei-interaktiiviseen editointiin ed-komentojen avulla Lopputulos tulostetaan (tai kirjoitetaan takaisin lähdetiedostoihin) Käyttö: sed komento sed komento tiedostot sed komento -i tiedostot sed -e komento1 -e komento2... Esimerkkejä: sed s/pekka/pekka/g <nimet.txt >nimet2.txt echo ABC DEF ABC sed -e s/abc/ghi/2 -e s/ /, /g sed -i s/ *$// tiedosto.txt

vi VIsual editor Visuaalinen korvike ed:ille Vi:n käyttö tapahtuu pääasiassa kahdessa eri tilaa (mode): Oletuksena ollaan komentotilassa Syöttötilassa voidaan kirjoittaa tekstiä normaalisti Komentotilaan palataan painamalla ESC Joitain komentoja: i Siirry syöttötilaan (insert) :e Avaa tiedosto (edit) :w Tallenna tiedosto (write) :q Poistu ohjelmasta (quit) :q! Poistu ohjelmasta tallentamatta muutoksia Komentotilassa voidaan myös antaa ed-tyylisiä komentoja: :%s/regex /teksti /