ERLEDIGT
NEIN
NEIN
ANTWORTEN
23
23
ZUGRIFFE
1164
1164
EMPFEHLEN
-
29.09.10 13:59 #16
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
für das austauschen von Daten in einer Datei nehm ich bevorzugt sed her.
Der ist zwar etwas "umständlich" zu bedienen, aber schnell und kann so ziemlich alles was man braucht.
Zu deiner Problemstellung könntest du etwas wie folgt verwenden:
Code bash:1 2 3 4 5 6 7 8 9 10 11
# Aus der Serverconfig etwas auslesen, hier "sv_password" value=$( grep sv_password /pfad/zur/Server.cfg | sed -e 's/^[[:space:]]*sv_password[[:space:]]\+"\([^"]*\)"/\1/' ) # Schauen ob das Feld "password=" bereits in der Zielconfig vorhanden ist grep password= /pfad/zur/Config &>/dev/null if [[ $? -eq 0 ]]; then # Vorhanden! sed -i /pfad/zur/Config -e "s/^\(password=\).*$/\1${value}/" else # Nicht vorhanden! echo "password=${value}" >/pfad/zur/Config fi
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
30.09.10 02:36 #17
- Registriert seit
- Sep 2010
- Beiträge
- 24
funktioniert schon ganz gut das was allerdings leichte Probleme macht ist wenn er an den Punkt "logfile" kommt
wenn er da $log einsetzen soll
welches ../../mod/pfad enthalten gibts Probleme
sed -i /pfad/zur/Config -e "s/^\(password=\).*$/\1${value}/"
-
30.09.10 08:03 #18
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
dies liegt daran, dass in dem Wert Slashes vorkommen (Diese da: / ).
Somit musst du bei sed einen anderen Delimiter wählen, oder den String escapen.
Code bash:1
sed -i /pfad/zur/Config -e "s|^\(log=\).*$|\1${log}|"
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
30.09.10 13:44 #19
- Registriert seit
- Sep 2010
- Beiträge
- 24
Irgendwo habe ich da nen Denkfehler
Code :1
sed -i /home/$fdpfad/mods/manuadminmod/config/config.cfg -e "s/^\(logfile[[:space:]]=[[:space:]]\).*$|\1"\"${log}\""|"
-
30.09.10 15:06 #20
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Joa,
du hast bei deinem sed-Befehl den Delimiter nicht überall geändert, es sollte wie folgt heißen:
Code bash:1
sed -i /home/$fdpfad/mods/manuadminmod/config/config.cfg -e "s|^\(logfile[[:space:]]+=[[:space:]]+\).*$|\1${log}|"
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
30.09.10 17:06 #21
- Registriert seit
- Sep 2010
- Beiträge
- 24
Hmmm nö er mag mich ned, geht nicht
-
01.10.10 12:39 #22
- Registriert seit
- Sep 2010
- Beiträge
- 24
hehe nu mag es ! Klasse
Einen Bug gibts noch
Wenn in der Server.cfg die Rcon Anweisung so steht:
//set sv_rconpassword "Ihr Admin Passwort" --- Rcon Einstellungen
set rcon_password "topsecret"
kommt er durcheinander. Hat jemand eine Idee das er die Zeile nimmt die nicht auskommentiert ist.
Code :1
rcon=$( grep set[[:space:]]rcon_password $home/$log1/server.cfg | sed -e 's/^[[:space:]]*set[[:space:]]rcon_password[[:space:]]\+"\([^"]*\)"/\1/' )
-
01.10.10 12:42 #23
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Jo sorry, die "+" müssen auch escaped werden

Code bash:1
sed -e "s|^\(logfile[[:space:]]\+=[[:space:]]\+\).*$|\1${log}|"
// Edit: Zu deinem neuen Beitrag:
Er sollte nicht durcheinander kommen, da du ja bei dem RegEx mit dem "^" nach dem Delimiter den Zeilenanfang markierst. Somit sollt er auf den Kommentar nicht zutreffen.
Ansonsten kannst ja noch den Modifier "g" (global) hinten an den RegEx dranhängen:
/suchen/ersetzen/g
// Edit2: Habs gerade getestet, er liefert das korrekte Ergenbis "topsecret" zurück, auch ohne den Modifier.
Gruß
BKGeändert von Bratkartoffel (01.10.10 um 12:47 Uhr)
Über eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
01.10.10 13:17 #24
- Registriert seit
- Sep 2010
- Beiträge
- 24
Hi,
ja erstmal muss ich sagen, entschuldigen brauch sich keiner`g. So gut wie Du mir **** geholfen hast kann ich nur auf die Füsse fallen`g.
Mal vielen Dank.
Eigentlich hab ich alles was ich brauche und es ****t nun alles. Eine Idee die ich mir überlege ein zu bauen wäre ein Limit für die Neuinstalls.
Die Überlegung ist dies Anhand von logfiles zu erledigen. Sprich ich gebe dem ichs etze eine Vari 2 in der Config so hat er 2 Neuinstalls in einem Monat zur Verfügung.
Ähnliche Themen
-
script zu einem bestimmten datum etwas automatisch tun lassen?
Von Catscrash im Forum PHPAntworten: 1Letzter Beitrag: 22.10.05, 13:11 -
script welches nach einem bestimmten zeitraum eine url aufruft
Von PC Freak im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 25.11.04, 01:58 -
str_replace erst nach bestimmten Abschnitt
Von PhoenixDH im Forum PHPAntworten: 2Letzter Beitrag: 20.10.04, 10:01 -
Suche script um ein popup an einem bestimmten tag erscheinen zu lassen
Von Dayan im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 09.09.04, 18:57 -
DW - MX: Verlinkung zu einem bestimmten Abschnitt einer Site?
Von Selena im Forum HTML & XHTMLAntworten: 6Letzter Beitrag: 26.02.04, 10:53






Zitieren
Login





