Ero sivun ”Comm” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (→‎Esimerkkejä käytöstä: Pois luokasta "Sivut, joissa on syntaksin korostusvirhe")
p (Esimerkkiä selkeytetty)
Rivi 3: Rivi 3:


==Esimerkkejä käytöstä==
==Esimerkkejä käytöstä==
Kaksi ryhmää tarkkailee lintuja. Heidän havaitsemansa linnut on lueteltu alla olevissa tiedostoissa.
Kaksi ryhmää tarkkailee lintuja. Ryhmien havaitsemat lintulajit on lueteltu alla olevissa tiedostoissa.
<source lang="sh">
<source lang="sh">
$ cat tiedosto_1
$ cat ryhma1
varpunen
varpunen
varis
varis
harakka
harakka
$ cat tiedosto_2
$ cat ryhma2
tilhi
tilhi
varis
varis
harakka
harakka
</source>
</source>
Tiedostojen rivit tulee ensin järjestää esimerkikisi [[sort]]-komennolla, ja tulos voidaan ohjata suoraan syötteeksi comm-ohjelmalle seuraavasti:
Jotta ryhmien havaitsemia lintulajeja voidaan vertailla comm-ohjelmalla, tulee luetteloiden rivit ensin järjestää esimerkikisi [[sort]]-komennolla. Järjestetyt luettelot voidaan ohjata suoraan syötteeksi comm-ohjelmalle seuraavasti:
<source lang="sh">
<source lang="sh">
$ comm <(sort tiedosto_1) <(sort tiedosto_2)
$ comm <(sort ryhma1) <(sort ryhma2) | expand
harakka
                harakka
tilhi
        tilhi
varis
                varis
varpunen
varpunen
</source>
</source>
Selkeyden vuoksi tässä [[expand]] korvaa sarakkeiden tab-erotimerkit 8 välilyönnillä.
Valitsimilla -1, -2 ja -3 sarakkeita voi piilottaa. Esimerkiksi piilottamalla valitsimilla -1 ja -2 ensimmäinen ja toinen sarake saadaan tuloksena pelkästään molempien syötetiedostojen yhteiset rivit.
Valitsimilla -1, -2 ja -3 sarakkeita voi piilottaa. Esimerkiksi piilottamalla valitsimilla -1 ja -2 ensimmäinen ja toinen sarake saadaan tuloksena pelkästään molempien syötetiedostojen yhteiset rivit.
<source lang="sh">
<source lang="sh">

Versio 3. helmikuuta 2019 kello 22.10

comm on komentoriviohjelma, joka vertailee kahden parametrina annetun syötetiedoston sisältöä riveittäin. Sillä voidaan erotella kahden eri tiedoston sisältämät yhteiset rivit ja rivit, jotka esiintyvät vain toisessa kahdesta komennolle parametrina annetusta syötetiedostosta. Molempien syötetiedostojen rivit tulee olla aakkosjärjestysessä (ks. sort). Ilman valitsimia comm näyttää rivit kolmessa sarakkeessa. Ensimmäisessä sarakeessa on pelkästään ensimmäisessä syötetiedostossa esiintyvät rivit, toisessa sarakkeessa vain toisessa syötetiedostossa olevat rivit ja kolmannessa sarakkeessa yhteiset eli molemmissa syötetiedostoissa olevat rivit.

Esimerkkejä käytöstä

Kaksi ryhmää tarkkailee lintuja. Ryhmien havaitsemat lintulajit on lueteltu alla olevissa tiedostoissa.

$ cat ryhma1
varpunen
varis
harakka
$ cat ryhma2
tilhi
varis
harakka

Jotta ryhmien havaitsemia lintulajeja voidaan vertailla comm-ohjelmalla, tulee luetteloiden rivit ensin järjestää esimerkikisi sort-komennolla. Järjestetyt luettelot voidaan ohjata suoraan syötteeksi comm-ohjelmalle seuraavasti:

$ comm <(sort ryhma1) <(sort ryhma2) | expand
                harakka
        tilhi
                varis
varpunen

Selkeyden vuoksi tässä expand korvaa sarakkeiden tab-erotimerkit 8 välilyönnillä. Valitsimilla -1, -2 ja -3 sarakkeita voi piilottaa. Esimerkiksi piilottamalla valitsimilla -1 ja -2 ensimmäinen ja toinen sarake saadaan tuloksena pelkästään molempien syötetiedostojen yhteiset rivit.

$ comm -12 <(sort tiedosto_1) <(sort tiedosto_2)
harakka
varis

Katso myös