Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: 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.
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.
-
Vastaampas itse, kun löysin esimerkin sed:stä.
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.
-
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.
sed -e "s/etsittavamrkjono/korvaavamrkjono/g" input.txt >output.txt