Lars Kongshøj <lars_kongshoj@hotmail.com> writes:
> Michael Andreasen wrote:
> > Hey.. Jeg har lavet en søgning efter en streng med
> > find . -name "*" -exec grep "streng" {} \; -print
> > Er der en "nem" måde at udskifte denne streng som man finder med en anden
> > streng?
>
> Det er en ting man tit har brug for. Det traditionelle unix-værktøj til
> den slags ting er "sed", men der vil også sikkert også være nogen, der
> foreslår "perl", som jeg dog ikke kender (endnu).
>
> Med "sed" kan det for eksempel gøres med
>
> sed 's/gammelt/nyt/g' gammelfil > nyfil
>
> I det ovenstående er "gammelt" et regulært udtryk, hvor diverse tegn har
> speciel betydning. Hvis "/" indgår i det du søger, kan du med fordel
> bruge "%" i stedet for "/" i ovenstående eksempel.
>
> En bregrænsning ved de fleste implementationer af sed er at man ikke kan
> redigere enkeltfiler, men er nødt til at omdirigere uddata. Denne
> begrænsning er fjernet i "Super-sed", som i følge rygter skulle danne
> basis for en kommende version 4 af GNU sed.
>
http://queen.rett.polimi.it/~paolob/seders/ssed/
>
> Med den kan man bruge syntaksen:
> sed -i 's/gammelt/nyt/g' fil
Det er næsten det samme når man bruger Perl
perl -pi -e's/gammelt/nyt/g' fil(er)
Hvis man gerne vil have backup af de filer man retter så kan man
skrive:
perl -pi.bak -e's/gammelt/nyt/g' fil(er)
--
Kim Hansen | |\ _,,,---,,_ | Det er ikke
Dalslandsgade 8, A708 | /,`.-'`' -. ;-;;,_ | Jeopardy.
2300 København S | |,4- ) )-,_. ,\ ( `'-' | Svar _efter_
Phone: 32 88 60 86 | '---''(_/--' `-'\_) | spørgsmålet.