Slide: 1


1.1  Tekstinprosessointiohjelmien yleinen toimintatapa (1)


Slide: 2


1.2  Virroista (1)


Slide: 3


1.3  cat, wc — uudestaan

cat [ -n ] [ -s ] tied1 tied2 ... (CATenate)
Yhdistää peräkkäin argumentteina olevat tiedostot. Valitsimella -n (Numerate) numeroi rivit. Valitsimella -s (Squeeze) korvaa peräkkäiset tyhjät rivit yhdellä.

wc [ -l ] [ -w ] [ -c ] [ -L ] tied1 tied2 ... (Word Count)
Laskee rivit, sanat ja merkit argumenttitiedostoista ja näyttää tuloksen. Valitsimilla -l (Lines), -w (Words) ja -c (Characters) kertoo vain linjojen, sanojen tai merkkien määrän (vastaavasti). Valitsimella -L (Line) kertoo pisimmän rivin pituuden.


Slide: 4


1.4  grep — uudestaan

grep [ -C n ] [ -v ] [ -x ] [ -i ] [ -o ] sana tied1 tied2 ... (Global RegExp Print)
Etsii sanaa argumenttitiedostoista. Oletuksena tulostaa linjat, joilla kyseinen sana löytyy. Valitsimella -C (Context) tulostaa myös löydöslinjojen ympäriltä pari linjaa. Valitsimella -v (?) tulostaa kaikki linjat, joista sanaa ei löydy. Valitsimella -x (eXact) tulostaa vain ne linjat, joilla on haettu sana eikä mitään muuta. Valitsimella -i (Insensitive) ei kiinnitä huomiota suurten ja pienten kirjainten eroon. Valitsimella -o (Only) tulostaa vain sen kohdan, joka täsmäsi (ei koko linjaa).

grep -r sana hakemisto (Global RegExp Print / Recursive)
Etsii sanaa rekursiivisesti kaikista hakemiston sisältämistä tiedostoista.


Slide: 5


1.5  Uusia tekstinprosessointikomentoja

head [ -n ] tied1 tied2 ... (HEAD of file)
tail [ -n ] tied1 tied2 ... (TAIL of file)
Näyttää n ensimmäistä (head) tai viimeistä (tail) riviä tiedostoista. Oletus 10 riviä.

sort [ -n ] [ -r ] [ -k n ] tied1 tied2 ... (SORT)
Järjestää argumenttitiedostojen rivit (oletuksena aakkosjärjestykseen). Valitsin -n (Numeric) tuottaa numeerisen järjestyksen; valitsin -r (Reverse) kääntää järjestyksen päinvastaiseksi; valitsimella -k (Key) voi valita, monennenko sanan mukaan järjestetään.

uniq [ -c ] [ -d ] tied (UNIQue lines)
Näyttää argumenttitiedoston siten, että peräkkäiset samat linjat on poistettu. Valitsimella -c (Count) kertoo lisäksi, kuinka monta kertaa mikin linja oli syötteessä. Valitsimella -d (Duplicates) kertoo vain ne linjat, joita oli useampi kappale.

cut [ -d merkki ] -f n tied1 tied2 ... (CUT fields)
Näyttää argumenttitiedostot siten, että jokaisesta linjasta näytetään vain n:s kenttä (Field). Kenttäerottimena käytetään merkki:a (Delimiter), joka on oletuksena sarkain (tabulaattori).

diff [ -u ] tied1 tied2 (DIFFerence)
Näyttää erot tied1"- ja tied2"-tiedostojen välillä.


Slide: 6


1.6  tr — kielitieteilijän perustyökalu

Tämä on yksinkertaisuudessaan hämmentävän monipuolinen ohjelma. tr osaa lukea syötettä vain vakiosyötteestä, sille ei voi antaa argumentiksi tiedostonimiä.

tr mistä mihin (TRanslitterate)
Muuntaa syötteen mistä"-merkit vastaaviksi mihin"-merkeiksi. Esimerkiksi tr ab uo muuttaa kaikki a:t u:ksi ja b:t o:ksi. Merkkijoukoissa voi olla myös väliviivalla merkittyjä merkkivälejä, esim. tr A-M a-m muuntaa kaikki isot kirjaimet A:n ja M:n väliltä pieniksi.

tr -d [ -c ] merkkejä (TRanslitterate / Delete)
Poistaa syötteestä annetut merkit. Valitsimella -c (Complement) poistaa kaikki merkit paitsi annetut merkit. Myös tämä ymmärtää merkkivälejä.

tr -s merkkejä (TRanslitterate / Squeeze)
Jos syötteestä löytyy useampia peräkkäisiä kappaleita jotain merkkiä, joka kuuluu annettuun merkkijoukkoon, ne korvataan yhdellä.

tr:n vipusia voi myös yhdistää. Esimerkiksi tr -sc A-Za-z ? korvaa kaikki yhden tai useamman merkin ei"-kirjainjaksot kysymysmerkillä.

Tärkeimpiä tr:n käytöistä lienee sanojen paneminen omille riveilleen. Se onnistuu komennolla

tr " " \\012

joka siis muuttaa välilyönnit rivinvaihdoiksi. Tähän hipsujen käyttöön tutustutaan tuonnempana.


Slide: 7


1.7  Tositoimiin: prosessointikomennot


Slide: 8


2.1  Tekstinprosessointiohjelmien yleinen toimintatapa (2)


Slide: 9


2.2  Virroista (2)


Slide: 10


2.3  Putket


Slide: 11


3.1  Putkikomentojen lukeminen

0.8@percent Esimerkki:
cat -n a.html | grep href | head -30 | tail -1

Tämä komento näyttää a.html"-tiedoston 30. linkin sekä rivin numeron, jolla kyseinen linkki sijaitsee. Mutta miten se toimii?

Putkikomentojen ymmärtämisessä on usein hyödyllistä nähdä, millaista tekstiä kulkee minkäkin kahden komennon välillä. Tämä onnistuu siten, että kirjoittaa putkilinjan komento kerrallaan ja katsoa aina, millaista tulostetta syntyy missäkin vaiheessa.

Sen sijaan halutun putkilinjan muodostaminen onkin vaikeampi homma: se edellyttää avointa ajattelua, erilaisten ratkaisumahdollisuuksien etsimistä. Yksi hyväksi havaittu tapa tehdä tätä on lisäillä putkilinjaan yksi komento kerrallaan sen mukaan, mikä “näyttää” vievän meitä lähemmäs ratkaisua. Tämä tietysti edellyttää intuitiota...

Joitain nyrkkisääntöjä on: kun halutaan valita tiettyjä linjoja (selektio), grep on yleensä oikea vastaus; kun halutaan valita linjoista tietty osa (projektio), cut on yleensä oikea vastaus; ja kun halutaan muuttaa tiedon rakennetta, tr on yleensä oikea vastaus.


Slide: 12


3.2  Tyypillisiä linjan loppuun liitettäviä komentoja

On monia komentoja, jotka on selkeästi suunniteltu putkilinjan lopettimiksi. Näistä ylivoimaisesti yleisin on less.


Slide: 13


3.3  Välihuomatutus: lainaaminen


Slide: 14


3.4  Putkiesimerkkejä (1)

0.8@percent ls | wc -l

Laskee, kuinka monta tiedostoa on oletushakemistossa. (Kun ls tulostaa muualle kuin näytölle, se tulostaa yhden tiedoston per rivi.)

0.8@percent history | grep ’|’ | less

Antaa selailla, mitä putkikomentoja on antanut.

0.8@percent cut -d: -f5 /etc/passwd | sort

Luettelee koneen käyttäjät aakkosjärjestyksessä.

0.8@percent echo testausta | mail -s koe hj@iki.fi

Lähettää hj@iki.fi:lle viestin otsikolla “koe” joka sisältää vain sanan “testausta”.


Slide: 15


3.5  Putkiesimerkkejä (2)

tr -s " " \\012 <aine.txt | sort | uniq | fmt | less

Näyttää aakkosellisen listan tiedoston aine.txt sanoista.


Slide: 16


3.6  Putkiesimerkkejä (3)

history | grep " cd " | sort -k 3 | mpage -8 -Plp

Tulostaa käytetyt cd"-käskyt järjestettynä sen mukaan, mihin tiedostoon niillä on menty, 8 sivua yhdellä paperilla.


Slide: 17


3.7  Tositoimiin: putket


This document was translated from LATEX by HEVEA.