Tekstin muokkaus

konsolissa

Pitäisi noin 9Mt kokoisessa tiedostossa etsiä tekstistä tietyt sanat, ja lisätä rivinvaihto niiden eteen.

Onnistuuko tämä jotenkin helposti?

Eli pitäisi tekstissä löytää kaikki sanat jotka esiintyvät kaksi kertaa peräkkäin ja niiden välissä on kaksoispiste.

"tämä on teksti moi: moi ja tämä jatkuu vielä"

Eli pitäisi näiden "moi: moi" eteen lisätä rivinvaihto, jotta lopputulos olisi:

"tämä on teksti
moi: moi ja tämä jatkuu vielä"

Teksti on utf-8.

10

407

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • viisaammilta

      minä en osaa, mutta tiedän että tuo menee loistavasti esimerkiksi pikkuisella perlinpätkällä. Älä menetä toivoasi, jäämme odottamaan oikeasti osaavien apua :)

    • sed,awk,tr ja perl

      "Pitäisi noin 9Mt kokoisessa tiedostossa etsiä tekstistä tietyt sanat, ja lisätä rivinvaihto niiden eteen."

      Enpä ole asiantuntija, mutta tuollaiset hommat hoitunevat ohjelmilla (mukana yleensä jakeluissa)
      sed, awk, tr ja tietenkin perlillä.
      http://www.cs.tut.fi/~jkorpela/unix/5.11.html

      Jos tuo "moi: moi" on vakio... onnistuisi tuo aika helposti jopa tekstieditorilla tai tekstinkäsittelyohjelmalla?

      • konsolissa

        Ei ole vakio, vaan se voi olla ihan mikä tahansa sana.

        Ainoa tunnusmerkki on että niiden välissä on kaksoispiste ja sitten välilyönti kaksoispisteen oikealla puolella.

        hei: hei
        joulu: joulu
        kevät: kevät

        jne...


      • seuravaa
        konsolissa kirjoitti:

        Ei ole vakio, vaan se voi olla ihan mikä tahansa sana.

        Ainoa tunnusmerkki on että niiden välissä on kaksoispiste ja sitten välilyönti kaksoispisteen oikealla puolella.

        hei: hei
        joulu: joulu
        kevät: kevät

        jne...

        man awk
        man sed

        sed:llä homma ainakin onnistuu.


      • mitä asiantuntijoita
        seuravaa kirjoitti:

        man awk
        man sed

        sed:llä homma ainakin onnistuu.

        täältä löytyykään!


      • konsolissa
        seuravaa kirjoitti:

        man awk
        man sed

        sed:llä homma ainakin onnistuu.

        Olisin erittäin kiitollinen jos joku neuvoisi minua näiden ohjelmien kanssa. En oikeastaan ymmärtänyt mitään man sivuista :(


      • Järki käteen
        konsolissa kirjoitti:

        Olisin erittäin kiitollinen jos joku neuvoisi minua näiden ohjelmien kanssa. En oikeastaan ymmärtänyt mitään man sivuista :(

        "oikeastaan ymmärtänyt mitään man sivuista :("

        Man sivut ovat referenssioppaita niille, jotka jo osaavat hommat, mutta tarkistavat detaljit.
        Dokumentaatiota on kaikista ohjelmista. Ohjelmat vain pitää itse opetella.
        Mietipä nyt itse: ei auta man g ? Opettaisiko joku minulle, kuinka c ohjelmoimaan?


    • Onnistuu sangen helposti.

      Laita tämä esim. tiedostoon nimeltä testiohjelma:

      #!/usr/bin/perl

      while() {
      chomp();
      /\W($ARGV[0]: $ARGV[0])\W/ && print "$`\n$1 $'\n";
      }

      (mikäli "type perl" tulostaa jotain muuta kuin tuo /usr/bin/perl, niin vaihda sen tuloste tuohon alkuun)

      Sen jälkeen aja komento chmod 755 testiohjelma.

      Sitten testaa toimiiko tuo itselläsikin:
      ./testiohjelma moi < testitiedosto

      1. ohjelmalle annettu parametri on se haettava sana, ja syötetiedosto annetaan ohjelman luettavaksi tavanomaisella komentotulkin uudelleenohjauksella (

      • viisaammilta

        Mää arvasin että Perli on maailman enstex tykein peli tollaseen :) Kun vielä joskus jaksais itte opetella..


      • konsolissa

        Ongelmana, etten tiedä haettava sanaa, se voi olla ihan mitä vaan.

        Ohjelman pitäisi osata tunnista automaattisesti kaksi peräkkäin oleva sanaa, joiden välissä on kaksoispiste.

        Esim jos merkkijono on:

        "Tämä on tällainen: tällainen esimerkki: vain mutta: ehkä joku: joku: tajuaa, mitä minä: minä tarkoitan"

        Niin lopputulos pitäisi olla:

        Tämä on \n
        tällainen: tällainen esimerkki: vain mutta: ehkä \n
        joku: joku: tajuaa, mitä \n
        minä: minä tarkoitan


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nurmossa kuoli 2 Lasta..

      Autokolarissa. Näin kertovat iltapäivälehdet juuri nyt. 22.11. Ja aina ennen Joulua näitä tulee. . .
      Seinäjoki
      69
      4118
    2. Vanhalle ukon rähjälle

      Satutit mua niin paljon kun erottiin. Oletko todella niin itsekäs että kuvittelet että huolisin sut kaiken tapahtuneen
      Ikävä
      50
      3065
    3. Maisa on SALAKUVATTU huumepoliisinsa kanssa!

      https://www.seiska.fi/vain-seiskassa/ensimmainen-yhteiskuva-maisa-torpan-ja-poliisikullan-lahiorakkaus-roihuaa/1525663
      Kotimaiset julkkisjuorut
      132
      3010
    4. Mikko Koivu yrittää pestä mustan valkoiseksi

      Ilmeisesti huomannut, että Helenan tukijoukot kasvaa kasvamistaan. Riistakamera paljasti hiljattain kylmän totuuden Mi
      Kotimaiset julkkisjuorut
      391
      2093
    5. Purra hermostui A-studiossa

      Purra huusi ja tärisi A-studiossa 21.11.-24. Ei kykene asialliseen keskusteluun.
      Perussuomalaiset
      210
      1196
    6. Ensitreffit Hai rehellisenä - Tämä intiimiyden muoto puuttui suhteesta Annan kanssa: "Meillä ei..."

      Hai ja Anna eivät jatkaneet avioliittoaan Ensitreffit-sarjassa. Olisiko mielestäsi tällä parilla ollut mahdollisuus aito
      Ensitreffit alttarilla
      11
      1183
    7. Mitä sanoisit

      Ihastukselle, jos näkisitte?
      Tunteet
      73
      1162
    8. Joel Harkimo seuraa Martina Aitolehden jalanjälkiä!

      Oho, aikamoinen yllätys, että Joel Jolle Harkimo on lähtenyt Iholla-ohjelmaan. Tässähän hän seuraa mm. Martina Aitolehde
      Suomalaiset julkkikset
      29
      1014
    9. Miten meinasit

      Suhtautua minuun kun taas kohdataan?
      Ikävä
      60
      1000
    10. Miksi pankkitunnuksilla kaikkialle

      Miksi rahaliikenteen palveluiden tunnukset vaaditaan miltei kaikkeen yleiseen asiointiin Suomessa? Kenen etu on se, että
      Maailman menoa
      111
      963
    Aihe