Bash / sed - suchen und 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

  • Versuche es mal mit

    Code
    sed -r 's/BIG_PORTS=("[^"]*")/OPEN_TCP=\1/'

    Semantik:

    Suche BIG_PORTS= gefolgt von " ... dann alle folgenden Zeichen sofern es nicht " ist ... und dann gefolgt von " und ersetze es mit OPEN_TCP= gefolgt von dem was im Suchausdruck in Klammern steht (" ... dann alle folgenden Zeichen sofern es nicht " ist ... und dann gefolgt von ")

    Test:

    Code
    framp@majestix:~$ echo 'BIG_PORTS="111,222,333,444,555,666,777,888,999"' | sed -r 's/BIG_PORTS=("[^"]*")/OPEN_TCP=\1/'
    OPEN_TCP="111,222,333,444,555,666,777,888,999"
  • Guten morgen,

    Danke für deinen tollen Beitrag!

    Dr funktioniert hervorragend. Allerdings konnte ich auch schon eine Lösung finden bzw. Habe den Fehler bei mir gefunden.

    Das Problem war der notepad++ Editor.

    Dieser hat ja die schöne funktionalen alle Dokumente in utf zu öffnen, dann hat er die checkbox "Auch ANSI". Das heißt er hat mir jedesmal das Dokument formatiert in utf und dadurch gab es zahlreiche Probleme beim ausführen.

    Ich werde zukünftig deine Lösung.berücksichtigen. Die scheint sinnvoll zu sein.

    Allerdings benötige ich nun interactive Lösungen.

    Sobald das Projekt fertig ist, geb ich dir gerne Bescheid das du sehen kannst wobei du mir geholfen hast :)


    Gesendet von meinem C6903 mit Tapatalk

  • So ganz verstehe ich Dein Problem nicht. Aber ich glaube nicht dass das was mit utf8 zu tun hat sondern mit crlf vs lf auf Windows bzw Linux.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!