string csere sok, megadott könyvtárban lévő szöveges fájlban

Egy tetszőlegesen megadott könyvtárban lévő összes tetszőleges nevű szöveges fájlban (a belsejében) kellene kicsrélni a regi_sztringet új_sztringre.
Meg lehet ezt úgy oldani, hogy a szöveges fájlokról nem csinálok másolatot?

Vagy másolatot kell csinálni és valahogy igy oldom meg:
cat masolat_fajl | sed 's/regi_sztring/új_sztring/g'>eredeti_fajl

Elsősorban bash megoldás érdekel, természetesen sed, awk, stb. használatával.

Hozzászólások


find $hely -type f -exec sed -i 's/alma/korte/g' {} \;

A $hely könyvtárban az összes file-ban kicseréli az "almat" "korte"-re.

--
trey @ gépház

Ez nagyon jó megoldás. Köszi, én is ilyet kerestem.

És hogy lehetne egyetlen sed-del megoldani ezt:
find $hely -type f -exec sed -i 's/alma/korte/g' {} \;
find $hely -type f -exec sed -i 's/narancs/banan/g' {} \;

Tehát hogy a find ne nyálazza kétszer végig a $hely könyvtárat a file-ok után kutatva, hanem egyszerre cseréljen a sed több string párost.

Üdv.: Cimbi2