Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: peran - 08.03.07 - klo:19.21

Otsikko: Tiedoston string replace? [RATKAISTU]
Kirjoitti: peran - 08.03.07 - klo:19.21
Vanhoille parroille lieneen triviaalia, mutta yritin, enkä onnistunut.

Ilmeisesti sed:llä jotenkin tehdään...

No, aikaisempi räpellykseni.

Koodia: [Valitse]
exec 3<> _bkexpn${lkm}.ps
Lines="0";
while read line <&3
do {
    if  [ "$Lines" -eq "2" ]
    then echo "tähän haluaisin oman rivini" >> _bkexp${lkm}.ps
    else echo $line >> _bkexp${lkm}.ps
    fi
     (( Lines++ ));                   #  Incremented values of this variable
                                      #+ accessible outside loop.
                                      #  No subshell, no problem.
   }
done
exec 3>&-

Tämä toimii muuten, mutta muuttaa matkalla merkkejä, koska echo $line tai echo "$line" muuttaa merkkejä, mikäli jotkin ehdot täyttyvät.

Käyttiksenä feisty.
Otsikko: Vs: Tiedoston string replace?
Kirjoitti: peran - 08.03.07 - klo:21.53
Vastaampas itse, kun löysin esimerkin sed:stä.

Koodia: [Valitse]
sed -e "s/etsittavamrkjono/korvaavamrkjono/" input.txt >output.txt
Tosin huomioitavaa, että etsittävä merkkijono on regex:piä, joten aivan kaikki merkit eivät suoraan käy.
Otsikko: Vs: Tiedoston string replace?
Kirjoitti: mgronber - 09.03.07 - klo:00.27
Lisätäänpä vielä sellainen asia että tuo korvaa vain ensimmäisen vastaavuuden jokaiselta riviltä. Jos halutaan että kaikki rivillä olevat vastaavuudet korvataan niin loppuun pitää lisätä g.

Koodia: [Valitse]
sed -e "s/etsittavamrkjono/korvaavamrkjono/g" input.txt >output.txt