[linux-l] Wie kann ich mit sed aus einer Datei lesen und in sie schreiben?
Thomas Kaepernick
mast_1 at gmx.net
Sa Apr 21 22:03:25 CEST 2012
Am Samstag, den 21.04.2012, 10:59 +0200 schrieb Achim Pabel:
> Hallo Thomas,
>
> ich hoffe nachfolgender Vorschlag hilft Dir weiter:
>
...
> sed 's/classes_list/\.\/usecase\/usecaselisting/' $file >
> $file.new &
> wait $!
> mv $file.new $file 2>/dev/null
>
...
Genau solches Konstrukt wollte ich umgehen. Da finde ich den Hinweis mit
"sed -i" besser. Das würde die o.g. Zeilen auf eine verkürzen und 2
Programme weniger aufrufen. Mit Jans Hinweisen würde es so aussehen:
sed -i 's+classes_list+\./usecase/usecaselisting+' "$file"
Da das erste Zeichen (außer es ist ein Leerzeichen) nach s als Trenner
zwischen dem alten und dem zu ersetzenden String interpretiert wird,
kann man sich das Backslashen der Schrägstriche sparen.
Übrigens, ich habe nochmal in dem Buch "awk & sed" von H. Herold
(Addison-Wesley) nachgesehen. Dort ist der Schalter -i nicht angegeben.
Gibt es unterschiedliche sed-Varianten?
Gruß Thomas
Mehr Informationen über die Mailingliste linux-l