• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

sed & grep problem

holly123

Newbie
hi leute,

da ich noch nicht so erfahren im umgang mit sed und grep bin, stehe ich jetzt vor einem problem.
ich möchte eine ganze zeile in einer datei mit einer neuen zeile austauschen.
folgender ansatz habe ich:


Code:
Es soll die folgende Zeile in der datei /etc/myconf.conf
SET LISTEN 3

durch diese  ersetzt werden
SET LISTEN 3 "/usr/sbin/myserver  --prefix $b-$P- --fork '/usr/local/abc/copynew.sh $$t $$T'" 256 5

folgenden ansatz habe ich:

Code:
# Neue Zeile die Eingefügt werden soll...
NEWLINE="SET LISTEN 3 \"/usr/sbin/myserver  --prefix $b-$P- --fork '/usr/local/abc/copynew.sh $$t $$T'\" 256 5"

sed "s/$(grep "SET LISTEN 3" /etc/myconf.conf)/${NEWLINE}/g" /etc/myconf.conf > /etc/myconf.conf.neu
mv /etc/myconf.conf.neu /etc/myconf.conf

leider funktioniert das nicht, ich bekomme immer folgenden fehler:

sed: bad option in substitution expression


hoffentlich kann mir jemand helfen... ich stehe voll auf der leitung....
zur Anmerkung: ich arbeite auf einem embedded linux-System mir ARM-Prozessor


vielen dank schon mal im voraus!!



holly
 
A

Anonymous

Gast
Sed und Zugriff auf Shellvariablen siehe hier http://wiki.linux-club.de/opensuse/Sed#.C3.9Cbergabe_von_Shell-Variablen_an_Sed-Programme
Mittem im Sed Kommandosubstitution??? auf so eine Idee muss man erst mal kommen, würde aber wahrscheinlich ähnlich funktionieren wie mit den Variablen.

Ist das die einzige Ersetzung und eine konstante Ersetzung die du machen musst, dann mach es nicht zu kompliziert, wenn es wirklich eine kompliziertere Variable Ersetzung werden soll, musst du ganz genaue Informationen über die Variablität liefern, am Besten am direkten Beispiel.

Versuch mal folgendes
Code:
cat DATEI | sed '/\(SET LISTEN 3\)/s//\1 "\/usr\/sbin\/myserver --prefix $b-$P- --fork \#\/usr\/local\/abc\/copynew.sh $$t $$T\#" 256 5/' | tr "#" "\'"

die 3 # müssten allerdings durch eine Sonderzeichen ersetzt werden, das nicht in der Datei vorkommen kann zB §


robi
 
Oben