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

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

Akonadi startet nicht mehr

sftp mit vsftpd und mysql

dovecot und postfix Konfiguration Problem

NagiosGrapher 1.7.1 funktioniert nicht

Zurück
Oben