Key/Value Ersetzung in conf file

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Key/Value Ersetzung in conf file

Beitrag von badera » 02.12.2015 08:06:06

Ich habe ein Konfigfile, in welchem ich per Skript Einstellungen ändern muss. Dabei ist der Wert mit unterschiedlicher Anzahl Spaces vom Parameternamen getrennt.
Konkret geht es um den Paramter maxconn, der in einem Konfigfile zweimal vorkommt; einmal mit 128 und einmal mit 256.

Code: Alles auswählen

    ...
    maxconn          128
    ...
    ... später in einer anderen Gruppe (deshalb andere Einrückung):
    ....
    maxconn                          256
    ...
Ich möchte nun"maxconn 128" durch "maxconn 1000" ersetzen und "maxconn 256" durch "maxconn 500". Idealerweise die Anzahl Spaces beibehalten, damit das Konfigfile nicht zerzaust wird.
Kann das jemand gleich aus dem Ärmel schütteln? Vielen Dank!
- badera

Benutzeravatar
hikaru
Moderator
Beiträge: 13907
Registriert: 09.04.2008 12:48:59

Re: Key/Value Ersetzung in conf file

Beitrag von hikaru » 02.12.2015 09:19:52

Das geht mit sed:

Code: Alles auswählen

sed "s#maxconn\([ ]\+\)128#maxconn\11000#g" DATEI
Der Ausdruck in runden Klammern im Suchstring ist eine Variable, die im Ersetzungsstring in Form von \1 wiederverwendet wird. So bleibt die Anzahl der Leerzeichen erhalten.
Für 256 entsprechend anpassen.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Key/Value Ersetzung in conf file

Beitrag von rendegast » 02.12.2015 13:09:11

Hat die Konfig-Datei vielleicht sowas wie

Code: Alles auswählen

include config.d/
Beispiele exim4, /etc/dovecot/conf.d/, /etc/default/grub.d/ usw.,
wobei in dem Verzeichnis einfach eine Datei neu geschrieben werden kann?
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
badera
Beiträge: 643
Registriert: 20.05.2004 20:01:50
Wohnort: Schweiz

Re: Key/Value Ersetzung in conf file

Beitrag von badera » 02.12.2015 13:20:55

Danke, hikaru, für die schnelle Antwort! funktioniert bestens!
@rendegast: Nein, gibt es nicht! Danke trotzdem.
- badera

Antworten