sed - festen String suchen / ersetzen

22/10/2014 - 23:19 von Axel Braun | Report spam
Moin,

ich stehe gerade vor der schönen Aufgabe, ein directory mit
Unterverzeichnissen zu kopieren.
Das geht ja noch mit einem
for i in $(ls ); do ; done

Nun möchte ich aber zusàtzlich in jedes Unterverzeichnis gehen (also z.B. cd
server), dort die server.spec datei suchen, in dieser spec Datei die Zeile
beginnend mit
%define majorver
finden und diesen durch einen festen String
%define majorver 3.4
ersetzen. Ich denke mit sed geht das.
Kann mir jemand auf die Sprünge helfen wie?

Danke vorab!
Axel
 

Lesen sie die antworten

#1 Stefan Enzinger
23/10/2014 - 00:15 | Warnen spam
On 2014-10-22 23:19, Axel Braun wrote:
Moin,

ich stehe gerade vor der schönen Aufgabe, ein directory mit
Unterverzeichnissen zu kopieren.
Das geht ja noch mit einem
for i in $(ls ); do ; done



$ cp -r
ist zu einfach?

Nun möchte ich aber zusàtzlich in jedes Unterverzeichnis gehen (also z.B. cd
server), dort die server.spec datei suchen, in dieser spec Datei die Zeile
beginnend mit
%define majorver
finden und diesen durch einen festen String
%define majorver 3.4
ersetzen. Ich denke mit sed geht das.
Kann mir jemand auf die Sprünge helfen wie?



Ich kann das nicht aus dem Handgelenk, aber ich vermute soetwas könnte
funktionieren:
find . -iname "server.spec" -exec sed -i "s/%define majorver.*$/%define
majorver 3.4/" '{}' \;

bitte nur auf unwichtigen daten testen.

Ähnliche fragen