Sida 1 av 1

Ersätta text i flera filer [LÖST]

Postat: 04 feb 2009, 19:10
av Alleinsora
Hej. Jag har ett problem, jag behöver ersätta en text som finns i hundratals filer i olika undermappar. Har hittat gawk och lyckats matcha en text i en fil. Men hittar ingen ytterligare information om hur man kan byta ut texten.

Så frågan är alltså, hur ska jag bära mig åt för att göra det? Är det kanske lättare att ta till python?

Re: Ersätta text i flera filer

Postat: 04 feb 2009, 19:18
av Lars
Svaret är sed, för att ersätta strängen "sök" med strängen "ersätt" kör du detta:

Kod: Markera allt

sed 's/sök/ersätt/' infil > utfil
Strängen "sök" är en regexp.

Re: Ersätta text i flera filer

Postat: 04 feb 2009, 19:30
av Alleinsora
tackar.

Kan man göra det rekursivt eller får man skripta det i så fall?

Re: Ersätta text i flera filer

Postat: 04 feb 2009, 19:44
av Konservburk

Kod: Markera allt

find -name '*.txt' -type f -exec sed -i 's/sök/ersätt/g' {} \;

Re: Ersätta text i flera filer

Postat: 04 feb 2009, 20:34
av Alleinsora
Tack så mycket.