finswimmer schriebWie geht das am besten?
Ein Aufruf der Art
find -name "*.txt" -exec ./script {} \;, wobei script das x-Attribut hat und ungefähr so aussieht:
sed -e"...." <$1 >t
rm -f $1
mv t $1
Dem liegt zugrunde, dass sed nicht eine Datei bearbeitet, sondern stdin, und dass er nicht von einer Datei lesen und auf dieselbe Datei schreiben kann. Man braucht eine temporäre Zwischendatei t.
Als Ausdruck für sed benutzt man üblicherweise einen mit s (substitute), z.B.
1,$s/Hugo/Emil/.