Config mit sed anpassen

S

schlawiner

Jungspund
Hallo,

ich versuche Daten welche unter einen gewissen Abschnitt stehen an zu passen, normalerweise kein Problem, da aber die wichtigen Merkmale mehrmals vorkommen bin ich da etwas ratlos.

Alle Daten welche unter "bank" stehen möchte ich mit sed via shellscript anpassen, OS Debian, hat da jemand eine Idee?

Code:
"Databases"
{
	"driver_default"		"mysql"
	
	"sourcebans"
	{
		"driver"			"mysql"
		"host"				"localhost"
		"database"			"xxx"
		"user"				"xxx"
		"pass"				"xxx"
		//"timeout"			"0"
		"port"			"xxx"
	}

	"bank"
	{
		"driver"			"mysql"
		"host"				"localhost"
		"database"			"xxx"
		"user"				"xxx"
		"pass"				"xxx"
		//"timeout"			"0"
		"port"			"xxx"
	}
	
	"storage-local"
	{
		"driver"			"sqlite"
		"database"			"sourcemod-local"
	}
}
 
Wenn deine ganzen Abschnitte schön mit Leerzeilen getrennt sind, und der "bank"-Abschnitt auch nicht mehrfach vorkommt, reicht es evtl. schon aus, die gewünschten sed-Kommandos nur auf den einen Abschnitt einzuschränken, also z.B.:
Code:
sed -e '/"bank"/,/^$/ { s/^/#/; s/mysql/Oracle/; s/localhost/DBServer/; /user/s/xxx/ich/; /pass/s/xxx/geheim/; /port/s/xxx/0815/; }'
Das kommentiert den ganzen Abschnitt aus, ersetzt mysql durch Oracle, etc., macht also aus
Code:
        "bank"
        {
                "driver"                        "mysql"
                "host"                          "localhost"
                "database"                      "xxx"
                "user"                          "xxx"
                "pass"                          "xxx"
                //"timeout"                     "0"
                "port"                  "xxx"
        }
dann
Code:
#       "bank"
#       {
#               "driver"                        "Oracle"
#               "host"                          "DBServer"
#               "database"                      "xxx"
#               "user"                          "ich"
#               "pass"                          "geheim"
#               //"timeout"                     "0"
#               "port"                  "0815"
#       }
#

Gruss, A.
 
Danke, es ist aber nicht ganz die Lösung welche ich suche. er soll sich erst nach "bank" orientieren und dann an den parametern driver host etc weiter orientieren und danach die richtigen parameter setzen, ich habe es so versucht

Code:
sed -i cstrike/addons/sourcemod/configs/databases.cfg -e '/"bank"/,/^$/ { s/^/#/; s/^/(\"driver\"[[:space:]]\).*$/\1\"${vari1}\"/'

nur funktioniert das nicht`g
 

Ähnliche Themen

dovecot und postfix Konfiguration Problem

NagiosGrapher 1.7.1 funktioniert nicht

web-cyradm: Anmeldung nicht möglich

Modulfehler?

Ubuntu X / dbus problem

Zurück
Oben