![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Tobi, 31. 12. 2007, 16:29
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
Die folgende Nachricht zum Thema stammt von: seth_not@home, 31. 12. 2007, 19:28
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
© 1998-2006
Impressum, Software: Classic Forum