Hallo, versuche mit einem Shell Skript folgenden Text zu ersetzen: // forwarders { // 0.0.0.0; // }; durch forwarders { 192.168.0.1; }; klappt aber nicht. habe Probleme mit dem Zeilenumbruch und den Leerzeichen for der IP. Der bisherige sed Befehl lautet: sed -i 's@//forwarders {\ // 0.0.0.0;\ //};@forwarders {\ 192.168.0.1;\ };@' /etc/bind/named.conf.options Vielen Dank für die Hilfe Georg -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Tuesday, 20 September 2011 16:40:43 gwallner wrote:
versuche mit einem Shell Skript folgenden Text zu ersetzen: // forwarders { // 0.0.0.0; // };
durch forwarders { 192.168.0.1; };
klappt aber nicht. habe Probleme mit dem Zeilenumbruch und den Leerzeichen for der IP.
Der bisherige sed Befehl lautet: sed -i 's@//forwarders {\ // 0.0.0.0;\ //};@forwarders {\ 192.168.0.1;\ };@' /etc/bind/named.conf.options
sed arbeitet *zeilenweise*. Versuch das hier zu verstehen: $ echo -e 'top\nm1\nm2\nm3\nbottom' top m1 m2 m3 bottom $ echo -e 'top\nm1\nm2\nm3\nbottom' | sed '/^m1$/{N;N;s/^m1\nm2\nm3$/fritz\nfratz/}' top fritz fratz bottom Dann kannst Du Dein Problem ähnlich lösen. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Tue, 20 Sep 2011, gwallner schrieb:
versuche mit einem Shell Skript folgenden Text zu ersetzen: // forwarders { // 0.0.0.0; // };
durch forwarders { 192.168.0.1; };
klappt aber nicht.
sed '/forwarders/,/};/c\ forwarders {\ 192.168.0.1;\ }; ' DATEINAME HTH, -dnh -- DMCA: Don't Make Content Accessible -- userfriendly, id=20060122 -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Mittwoch, 21. September 2011, 18:19:07 schrieb David Haller:
Hallo,
Am Tue, 20 Sep 2011, gwallner schrieb:
versuche mit einem Shell Skript folgenden Text zu ersetzen: // forwarders {
// 0.0.0.0; // };
durch
forwarders {
192.168.0.1;
};
klappt aber nicht.
sed '/forwarders/,/};/c\ forwarders {\ 192.168.0.1;\ }; ' DATEINAME Danke, so funktionierts. Wo kann man nachlesen weshalb es so funktioniert. Warum kein 's/search/replace/',warum kein \n, usw.
Georg -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Thu, September 22, 2011 9:52 am, gwallner wrote:
Am Mittwoch, 21. September 2011, 18:19:07 schrieb David Haller:
sed '/forwarders/,/};/c\ forwarders {\ 192.168.0.1;\ }; ' DATEINAME Danke, so funktionierts.
Ja, damit schreibst du aber den Text fest rein, und löschst nicht nur die Kommentarzeichen. Das mag jetzt funktionieren, aber wenn du mal einen anderen Inhalt brauchst, dann mußt du das Script immer anpassen.
Warum kein 's/search/replace/',
Search and replace funktioniert schon. Du mußt nur zwangsläufig mehrere Zeilen einlesen und kannst erst dann ersetzen.
warum kein \n, usw.
Was meinst du?
Wo kann man nachlesen weshalb es so funktioniert.
Ich erwähn' mal das Tutorial, was ich vor einiger Zeit im freien-magazin geschrieben habe: http://www.freiesmagazin.de/ftp/2010/freiesMagazin-2010-03.pdf bzw. als 3 Teiler in meinem Blog: http://blog.256bit.org/archives/565-Eine-kleine-Einfuehrung-in-sed,-Teil-1.h... http://blog.256bit.org/archives/576-Eine-kleine-Einfuehrung-in-sed,-Teil-2.h... http://blog.256bit.org/archives/648-Eine-kleine-Einfuehrung-in-sed,-Teil-3-A... Ansonsten tut es natürlich die manpage oder die info pages auch. Oder eine der anderen 3 Trilliarden Webpages, die Google ausspuckt. Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Hallo, Am Thu, 22 Sep 2011, Christian Brabandt schrieb:
On Thu, September 22, 2011 9:52 am, gwallner wrote:
Am Mittwoch, 21. September 2011, 18:19:07 schrieb David Haller:
sed '/forwarders/,/};/c\ forwarders {\ 192.168.0.1;\ }; ' DATEINAME Danke, so funktionierts.
Ja, damit schreibst du aber den Text fest rein, und löschst nicht nur die Kommentarzeichen.
Hat er doch sowieso nicht (sondern die Platzhalter IP 0.0.0.0 ersetzt).
Das mag jetzt funktionieren, aber wenn du mal einen anderen Inhalt brauchst, dann mußt du das Script immer anpassen.
Hä? Das mußt du bei 's///' doch ebenso. _FALLS_ es nur um's entkommentieren gehen würde, wäre folgendes korrekt: sed '/forwarders/,/};/ { s@^\([[:space:]]*\)//[[:space:]]*@\1@ }' DATEINAME (sogar mit Berücksichtigung einer Einrückung).
Wo kann man nachlesen weshalb es so funktioniert.
man sed info sed O'Reilly: sed & awk. -dnh, von dem es im Archiv auch einiges, teils sehr ausführliches, zu sed zu finden gibt -- Lieber 'ne Latte in der Hose als ein Brett vorm Kopf. -- Adrian Knoth -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Thu, September 22, 2011 11:57 am, David Haller wrote:
Ja, damit schreibst du aber den Text fest rein, und löschst nicht nur die Kommentarzeichen.
Hat er doch sowieso nicht (sondern die Platzhalter IP 0.0.0.0 ersetzt).
Upps, verwechselt. Da habe ich wohl den Thread nicht mehr richtig erinnert. Grüße, Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (4)
-
Christian Brabandt
-
David Haller
-
gwallner
-
Torsten Förtsch