(toiminnot)

hwechtla-tl: Filtteriputki: viime muutokset

[Unix-filosofia]ssa monet ohjelmat toimivat filttereinä, eli ne lukevat merkkivirtaa ja tuottavat siitä toisen merkkivirran - jotkut vain muuttelevat vähän syötettään, jotkut paljon, jotkut tulostavat jotain aivan muuta. Esimerkiksi cat -n lisää jokaisen linjan alkuun numeron, sort järjestää linjat aakkosjärjestykseen ja wc vain laskee linjat, sanat ja merkit ja tulostaa nämä numerot.

Unixien komentotulkeissa on hieno ominaisuus, "pipe" (putki). Sitä merkitään merkillä "|", jota tämän mukaisesti kutsutaan usein putkimerkiksi. Putki tarkoittaa, että kaksi ohjelmaa voi yhdistää siten, että toisen tuloste menee suoraan toisen syötteeksi. Esimerkiksi {{{ ssh foo cut -d: -f1 /etc/passwd | a2ps -Pjonkka }}} Listaa koneen foo käyttäjätunnukset ja lähettää ne suoraan tulostimelle jonkka. Putkia voi olla mielivaltaisen pitkiä:

{{{ lsof -i | grep ESTABL | cut -b 10-16 | sort -u | wc }}} (tulostaa, kuinka monta nettiyhteyksiä auki pitävää prosessia on käynnissä)

Joissain tilanteissa putkissa vastuu syötteen eri kohdista on pumpattu eri filttereille. Tällöin syötteessä on merkintöjä, joiden perusteella filtterit päättävät, tuleeko niiden koskea kyseiseen kohtaan merkkivirrasta vai päästää se vain sellaisenaan läpi. Kanoninen esimerkki on troff: {{{ cat jotain.1 | pic | tbl | eqn | troff -man }}} mutta myös [heuristinen HTML-konvertoija]ni on suunniteltu tällä ideologialla.


(viimeksi muutettu 27.06.2005 15:41)