sed - zeile finden, danach zeile einfügen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Fishi
Beiträge: 48
Registriert: 09.09.2005 19:17:16

sed - zeile finden, danach zeile einfügen

Beitrag von Fishi » 23.05.2008 08:50:57

hi,
Ich möchte in einer text datei eine bestimmte Zeichenfolge finden und direkt danach eine neue Zeile einfügen.

Die Zeichenfolge die Ich finden muss ist:

Code: Alles auswählen

forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
Die neue Zeile direkt danach:

Code: Alles auswählen

 "tcp 0.0.0.0:1194 192.168.0.1:1194 0 # OpenVPN",
Leider wird die neue Zeile auch hinter dieser Zeichenfolge eingefügt:

Code: Alles auswählen

voip_forwardrules = "udp 0.0.0.0:5060 0.0.0.0:5060",
Hier mein Script:

Code: Alles auswählen

sed -i "/forwardrules.\=.\"udp 0.0.0.0:5060 0.0.0.0:5060\"\,/ a\\ \ \"tcp 0.0.0.0:1194 192.168.0.1:1194 0 \# OpenVPN\"\," $tempfile1
Was muss ich ändern damit die neue Zeile nur an der richtigen stelle eingefügt wird?

by Fishi

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Duff » 23.05.2008 09:39:53

So sollte es funktionieren, wenn es zu Beginn der Zeile auftritt.

Code: Alles auswählen

sed -i "/^forwardrules.\=.\"udp 0.0.0.0:5060 0.0.0.0:5060\"\,/ a\\ \ \"tcp 0.0.0.0:1194 192.168.0.1:1194 0 \# OpenVPN\"\," $datei
Oh, yeah!

Spasswolf
Beiträge: 3472
Registriert: 30.11.2005 10:32:22
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Wald

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Spasswolf » 23.05.2008 09:41:42

Änder forwardrules zu ^forwardrules.

Benutzeravatar
Fishi
Beiträge: 48
Registriert: 09.09.2005 19:17:16

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Fishi » 23.05.2008 10:27:34

hi,

danke für die Antwort.

ich habe

Code: Alles auswählen

forwardrules
in

Code: Alles auswählen

^forwardrules
geändert.

Jetzt fügt das Script überhaupt keine Zeile mehr ein.
Was ist jetzt falsch ?

Okay das problem liegt darin das "forwardrules" mehrfach eingerückt ist ,wenn "forwardrules" am Zeilenanfang steht funktioniert das Script mit "^forwardrules"

Wie kann ich dieses problem beseitigen?
danke im vorraus

by Fishi


by Fishi
Zuletzt geändert von Fishi am 23.05.2008 10:51:09, insgesamt 1-mal geändert.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Meillo » 23.05.2008 10:50:21

sind noch Whitespaces for dem "forwardrule"?
Use ed once in a while!

Benutzeravatar
Fishi
Beiträge: 48
Registriert: 09.09.2005 19:17:16

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Fishi » 23.05.2008 10:52:47

Meillo hat geschrieben:sind noch Whitespaces for dem "forwardrule"?
ja genau so ist es !!

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Duff » 23.05.2008 11:33:08

Sollte so funktionieren:

Code: Alles auswählen

sed -i "/^\s\{1,\}forwardrules.\=.\"udp 0.0.0.0:5060 0.0.0.0:5060\"\,/ a\\ \ \"tcp 0.0.0.0:1194 192.168.0.1:1194 0 \# OpenVPN\"\,"  $datei
Oh, yeah!

Benutzeravatar
Fishi
Beiträge: 48
Registriert: 09.09.2005 19:17:16

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Fishi » 23.05.2008 11:37:04

ja danke das ist die lösung.
genauso funktioniert es.

by Fishi

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Duff » 23.05.2008 11:40:41

Kein Problem.

Ist das eine Datei von einer fritzbox
Oh, yeah!

Benutzeravatar
Fishi
Beiträge: 48
Registriert: 09.09.2005 19:17:16

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Fishi » 23.05.2008 12:06:12

ja die ar7.cfg von der FritzBox
mit dieser Zeile(n) mache ich eine Portweiterleitung(en) auf die FritzBox , für Apache,bftpd,ovpn
Die FritzBox erlaubt das nicht über die Oberfläche.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Duff » 23.05.2008 12:12:36

Wusste doch, dass mir das bekannt vor kam ;-)

Leitest du die Anfragen für openvpn an einen Server weiter oder an einen Client?
Hintergrund: Will nämlich auf einem Server vpn einrichten und hätte noch ein paar Fragen dazu.
Oh, yeah!

Benutzeravatar
Fishi
Beiträge: 48
Registriert: 09.09.2005 19:17:16

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Fishi » 23.05.2008 12:37:25

die anfrage geht an einen ovpnServer ,der Client braucht keine Portfreigaben.
Der ovpnServer ist direkt auf der FritzBox installiert und stellt den gesamten localen IP bereich im vpn netz zur verfügung.

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Duff » 23.05.2008 12:48:15

Ok, was benutzt du als Doku?
Oder hast du über dein Vorhaben selber eine Doku geschrieben?
Oh, yeah!

Benutzeravatar
Fishi
Beiträge: 48
Registriert: 09.09.2005 19:17:16

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Fishi » 23.05.2008 15:14:15

ich habe mein vorhaben schon seit längerer Zeit umgesetzt.

Es gibt verschiedene Möglichkeiten ovpn zum laufen zu bringen.

Falls du die FritzBox7170 hast -glück gehabt, die aktuelle Firmware bietet VPN ,habe es aber noch nicht getestet.

-eine komplett neue inoffizelle Firmware für die FritzBox ,ein sehr komplexes Thema
http://www.ip-phone-forum.de/forumdisplay.php?f=525

-alle nötigen dateien werden per script von einem Webspace heruntergeladen ,weil die FritzBox einen Flash Speicher hat und alles nach einem neustart der FritzBox wieder verloren ist
http://www.ip-phone-forum.de/showpost.p ... tcount=192

-alles kommt von einem usbstick der an der FritzBox hängt ,so mache ich es. Genauso wie oben nur ohne Webspace da die dateien auf dem usbstick liegen.
.
Das Forum http://www.ip-phone-forum.de/ liefert alles nötige

Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Re: sed - zeile finden, danach zeile einfügen

Beitrag von Duff » 23.05.2008 16:11:37

Ok, danke.
Oh, yeah!

Antworten