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.
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.
Vastaukset 10
Vanhimmat
minä en osaa, mutta tiedän että tuo menee loistavasti esimerkiksi pikkuisella perlinpätkällä. Älä menetä toivoasi, jäämme odottamaan oikeasti osaavien apua :)
"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?
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.
täältä löytyykään!
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 (
Mää arvasin että Perli on maailman enstex tykein peli tollaseen :) Kun vielä joskus jaksais itte opetella..
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