PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit sed



h0sch1
12-07-2002, 17:12
Hi @ll

Ich bin gerade dabei und schreib mir ein Webfrontend für mein Firewall-Script.
In dem Formular kann ich die Einstellungen anpassen und schicke diese an ein cgi Script das mir die Konfigfile anpassen soll.
Das sieht dann z.B. so aus:

#!/bin/bash -f

file='/tmp/firewall.conf'
tmp_out="/tmp/new-fw.$$.txt"


sed "s/^\([ ]*masq_lan='\)[^']*\('.*\)$/\1$w3_masq_lan\2/" <"$file" >"$tmp_out"



In der Variable w3_masq_lan steht z.B. folgendes drin:
192.168.100.0/24

Mein Problem ist der Slash, der die IP-Adresse von der Subnetmask trennt.
Gib es da Irgendeine Option für den sed, dass er den Slash in der Variable nicht als Befehl her nimmt.

Danke schon mal

Hoschi

lankin
18-07-2002, 14:36
hai hoschi,

du musst den slash mit einem
backslash "\" maskieren.

kurzes simples beispiel:
echo 192.168.100.0/24 | sed "s/\// /g"


gruss
lankin

jean_luc_picard
04-03-2004, 17:18
Hallo,

ich hab auch mal wieder ein Problemchen. Du verwendest ja eine Variable als Ersetzung wenn ich das richtig sehe. Sorry, aber diesen Wust von Kommandos kann ich irgendwie nicht durchblicken.
Ich will in einem Skript folgendes:

variable=hello

sed -e 's/hallo/$variable/' $datei > $neue_datei

Kann mir vielleicht jemand nen Tip dazu geben?

Gruß Picard

peschmae
04-03-2004, 18:51
Die ' ' verhindern das ersetzen von Variablen durch ihren Inhalt seitens der Bash.
Mit " " sollte es gehen.

MfG Peschmä

jean_luc_picard
05-03-2004, 07:53
Danke, jetzt läuft es :) ... dabei war ich irgendwie der Meinung, das ich das schon probiert hatte... naja, war wohl offensichtlich doch nicht so :D