Bash sed suchen und danach einsetzen

  • Tach Leute,


    Ich hoffe, das mir jemand hier helfen Kann.


    Ich Fummel schon ne weile daran, dass ich in der firewall.conf nach OPEN_TCP="


    Und dahinter ports einfügen.
    Dazu habe ich das gute Stück:
    BIG_PORTS="111,222,333,444,555,666,777,888,999" sed -i "/\<$BIG_PORTS\>/ "\!"s/^OPEN_TCP=\"/&$BIG_PORTS,/" /etc/arno-iptables-firewall/firewall.conf


    Das Problem, die Ausgabe ist so:
    OPEN_TCP="111,222,333,444,555,666,777,888,999 ,22, 25, 80, 110, 143, 443, 465, 587, 993, 995, 21, 20" OPEN_UDP="" OPEN_IP=""


    Das heißt, dass er nach BIG_PORTS einen Zeilenumbruch macht. Das soll er gar nicht und ich verstehe nicht wieso er das macht.


    Jemand von euch ne Idee?


    Gesendet von meinem C6903 mit Tapatalk

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Ich habe den sed-Befehl mal so gebastelt, wie ich es machen würde:


    Code
    andreas@***:~ $ cat testfirewall.conf 
    bla OPEN_TCP="" blub
    andreas@***:~ $ sed -i "s/OPEN_TCP=<back>"/OPEN_TCP=<back>"$BIG_PORTS/g" testfirewall.conf 
    andreas@telekom-lap:~ $ cat testfirewall.conf 
    bla OPEN_TCP="111,222,333,444,555,666,777,888,999" blub
    andreas@***:~ $



    Vielleicht kannst du damit etwas anfangen, oder dein Problem genauer spezifizieren...


    Viele Grüße,
    Andreas


    Edit:
    Da wo <back> steht, kommt ein Backslash rein; der wird leider verschluckt...