Wert eines Konfigschlüssels in einer Datei ändern

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von aspire_5652, 02.01.2008.

  1. #1 aspire_5652, 02.01.2008
    Zuletzt bearbeitet: 02.01.2008
    aspire_5652

    aspire_5652 Tripel-As

    Dabei seit:
    02.01.2008
    Beiträge:
    198
    Zustimmungen:
    0
    Ich weiß, dass man mit sed Strings in einer Datei suchen und ersetzen kann. Ich hab in einer Konfigurationsdatei zwei Konfigschlüssel namens: "FW_SERVICES_EXT_TCP" und "FW_SERVICES_EXT_UDP". an diese Schlüssel will ich Werte anhängen, unabhängig ob schon ein weiterer Wert vorhanden ist oder noch gar kein Wert vergeben ist. In jedem Fall sollte der Wert "8080" angefügt werden.
    Bsp:
    vorher > nachher
    FW_SERVICES_EXT_TCP="ssh" > FW_SERVICES_EXT_TCP="ssh 8080"
    FW_SERVICES_EXT_UDP="" > FW_SERVICES_EXT_UDP="8080"

    Wie könnte man das umsetzen, damit es automatisiert in einem Shellscript Anwendung findet?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Wolfgang, 02.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Mit GNU sed direkt (Option -i)
    Ungetestet
    Code:
    sed -ie 's/\(FW_SERVICES_EXT_\(TCP\|UDP\)="[^"]*\)["]/\1 8080"/' file
    
    Ohne GNU sed musst du die Ausgabe erst im ein Temp-file schreiben und anschließend überkopieren.

    Gruß Wolfgang
     
  4. #3 aspire_5652, 02.01.2008
    aspire_5652

    aspire_5652 Tripel-As

    Dabei seit:
    02.01.2008
    Beiträge:
    198
    Zustimmungen:
    0
    sehr schön, funktioniert tadellos, nur kann man das irgendwie abfangen, dass wenn der Wert "8080" schon enthalten ist, sed dann abbricht und nichts macht?
     
  5. #4 Wolfgang, 02.01.2008
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Ja, das geht auch.
    Wenn die 8080 nur im Wert vorkommen kann...
    Ungetestet
    Code:
    sed -ie '/8080/!s/\(FW_SERVICES_EXT_\(TCP\|UDP\)="[^"]*\)["]/\1 8080"/' file
    
    Gruß Wolfgang
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Wert eines Konfigschlüssels in einer Datei ändern

Die Seite wird geladen...

Wert eines Konfigschlüssels in einer Datei ändern - Ähnliche Themen

  1. Returncode eines Antjobs auswerten

    Returncode eines Antjobs auswerten: Hallo zusammen, ich bin neu hier und habe noch nicht so viel Erfahrung bei der Shell Script Programmierung. Nun habe ich folgendes Problem....
  2. Wertschätzung meines PCs

    Wertschätzung meines PCs: blala
  3. Ungewollte Ueberspeicherung von Werten eines struct in einem hash

    Ungewollte Ueberspeicherung von Werten eines struct in einem hash: [Perl]Ungewollte Ueberspeicherung von Werten eines struct in einem hash Hallo, mein Problem ist, dass die "score"-Werte des globalen hash...
  4. ascii wert eines zeichens ????

    ascii wert eines zeichens ????: wie kann ich mir in einer shell (bash) den ascii wert eines zeichens ausgeben lassen ???
  5. Free Software Foundation bewertet Codehosting-Dienste

    Free Software Foundation bewertet Codehosting-Dienste: Die Free Software Foundation (FSF) hat Bewertungen nach den selbst definierten Richtlinien für mehrere Codehosting-Dienste herausgegeben....