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

425

    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. S-kauppa nosti hintoja, K-kauppa laski

      Elintarvikkeiden arvonlisävero laski vuodenvaihteessa 13,5 prosenttiin. S-kauppa siirsi alennuksen suoraan katteisiin pi
      Maailman menoa
      182
      7652
    2. Hiihtäjä Vilma Nissisen kommentit aiheutti paniikkia

      ja hernettä vedettiin nenään. Nissinen kertoi torstaina haastattelussa, kun häneltä kysyttiin, että tykkääkö hän hiihtä
      Maailman menoa
      132
      5244
    3. Huuto yltyy persujen piirissä Venezuelan johdosta.

      Kohta kakofonia yltyy kun persut tajuavat mitä Venezuelassa tapahtui. Von den Leydenki jo kipuilee kuten persut EU:ssa y
      Maailman menoa
      53
      2767
    4. Koska mennään retkeilemään?

      pusi pusi 😗
      Ikävä
      276
      2376
    5. Nyt ottaa persua pattiin: sähköauto joulukuun myydyin

      🤣 prööt prööt pakoputkellaan pörisevää persua ottaa nyt saamaristi pattiin, kun paristoilla kulkeva sähköauto on noussu
      Maailman menoa
      128
      2298
    6. Yhdysvaltain hyökkäys Venezuelaan on YK:n peruskirjan mukaan laiton hyökkäyssota

      Oman sävynsä tähän tuo vielä se, että hyökkäys kohdistettiin nimenomaan valtiojohtoa vastaan. Toki, kun tavoitteena on v
      Maailman menoa
      571
      2124
    7. Ovatko Perussuomalaiset kommunisteja?

      Toiset sanovat että ovat, toiset sanovat että eivät. Ainakin heillä on paljon sen aatteen piirteitä, koska haluavat kont
      Maailman menoa
      72
      2099
    8. Persuilla paniikki, kun diktaattorit yksi kerrallaan kaatuvat

      Hallapersut halusivat sivarineidostaan sotilasjuntan komentajan Suomeen, jotta persuaatteen mukaiset puhdistukset olisi
      Maailman menoa
      0
      1740
    9. Ei tule uni

      Kuten epäilin. Onneksi viime yön sain ihan hyvin nukutuksi. Tiesin kyllä, ettei tästä mitään tänään tule.
      Ikävä
      57
      1146
    10. Laittaisin whatsuppissa viestin

      Jos olisin täysin varma että se on toivottua vielä kun aikaa on mennyt ja että toivot sitä edelleen.
      Ikävä
      69
      1130
    Aihe