sed: Zeile ersetzen
Tobi
- software
Hi,
würde gerne in einer Datei jede Zeile, die foo enthält (-> d.h. z.B. foo, foo123 usw.) durch die Zeile bar ersetzen.
Dazu versuchte ich es mit
sed -e '/^foo/s/^.*/bar/' default.action
u.ä.
aber leider ohne Erfolg.
Könnt ihr mir bitte verraten, was falsch ist daran?
Danke, guten Rutsch
gudn tach Tobi!
würde gerne in einer Datei jede Zeile, die foo enthält (-> d.h. z.B. foo, foo123 usw.) durch die Zeile bar ersetzen.
Dazu versuchte ich es mit
sed -e '/^foo/s/^.*/bar/' default.action
ersetzen geht mit s///.
du willst aber ausserdem eine in-place-ersetzung durchfuehren. das kann afaik nicht jede sed-version. musst mal schauen, ob der parameter -i existiert. falls nicht, nimm einfach perl.
sed -i -e 's/^.*foo.*/bar/' file
perl -pi -e 's/^.*foo.*/bar/' file
falls du mehrere dateien ggf. rekursiv bearbeiten willst, kannst du das entweder ueber eine schleife (stichwort "for") bewerkstelligen oder mittels "find" oder ueber tools wie dem in perl geschriebenen textre.
prost
seth