Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Config File Werte finden und ändern

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - Allgemein
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
oli



Anmeldungsdatum: 25.12.2000
Beiträge: 46

BeitragVerfasst am: 27. Jun 2001 16:00   Titel: Config File Werte finden und ändern

Hi,

wie kann ich mit der Shell oder Artverwandten ein Config File nach einer bestimmten Variablen durchsuchen und
für diese einen neuen Wert setzen ?

Ich will die Frage mal durch ein Beispiel unterstreichen:

--------------

Nehmen wir die httpd.conf als Beispiel:

#
# Kommentare der Entwickler
#
#

DocumentRoot = /usr/local/httpd/htdocs

....

# weitere Kommentare
#

-----------------------

Wie schaffe ich es nun, dass ich den Wert für die Variable "DocumentRoot" z.B. auf den Wert "/usr/local/httpd" setze ?

Mir wär's wichtig, dass sich das mit Shell Mitteln bzw. Tools lösen lässt. Ich möchte nicht extra ein Perl Script dafür schreiben.

Für Ideen wäre ich echt dankbar

cu

oliver
_________________
If you were supposed to understand it, we wouldn't call it code.
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

hjb
Pro-Linux


Anmeldungsdatum: 15.08.1999
Beiträge: 3236
Wohnort: Bruchsal

BeitragVerfasst am: 27. Jun 2001 16:41   Titel: Re: Config File Werte finden und ändern

Hi,

so ein Zufall! Gerade von 5 Minuten habe ich mir folgende Funktion zusammengezimmert:

updateconfig()
{
cp "$1" /root/old || exit 1
sed -e "s/$2/$3/g" < /root/old > "$1"
rm "/root/old"
}

Baue sie in ein Shellskript ein und rufe sie folgendermaßen auf:

updateconfig dateiname alter-string neuer-string

Ich verwende eine temporäre Datei /root/old. Aus Sicherheitsgründen verwende ich nicht /tmp als temporäres Verzeichnis.

Gruß,
hjb
_________________
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger

Ozi
Gast





BeitragVerfasst am: 27. Jun 2001 17:58   Titel: Re: Config File Werte finden und ändern

Hi,

mensch, super. der entscheidende Tip. Vielen Dank auch

cu

oliver
 

Jochen
Gast





BeitragVerfasst am: 28. Jun 2001 10:24   Titel: Re: Config File Werte finden und ändern

Dann sei aber vorsichtig, dass Du nie ein Verzeichnis mit Namen /root/old anlegst... Dann geht zwar noch das cp-Kommando, aber nicht mehr der sed. Wenigstens hast Du dann aber immer noch das alte Config-File unter /root/old/name stehen, weil rm ohne -r das Verzeichnis nicht wegwirft.

Noch 'n Problemchen: Sollten 2 Skripte die Funktion fast zeitgleich nutzen, kann die eine die /root/old des anderen überschreiben. Ärgs.

Ach ja, und sollten die Inhalte von $2 und $3 den armen kleinen sed verwirren, ist die Config-Datei weg, und die Sicherung wird danach gelöscht. Ahem.

Kleine Korrektur meinerseits:

code:

updateconfig()
{
if [[ -a /root/old.$$ ]] ; then
echo "Workfile already exists!" >&2
exit 1
fi
cp "$1" /root/old.$$ || exit 1
sed -e "s/$2/$3/g" < /root/old.$$ > "$1" || exit 1
rm "/root/old"
}



Ja ja, lässt sich noch um einiges verbessern, aber das sollte erst mal das notwendige Minimum sein.

Einverstanden?

Jochen
 

Ozi
Gast





BeitragVerfasst am: 28. Jun 2001 18:39   Titel: Re: Config File Werte finden und ändern

Aha,

ein Shell Crack scheint's mir. Guter Hinweis, weiter so. Wo lernt man eigentlich die sed basics, mal abgesehen von rtfm ?

c'ya

oliver
 

Jochen
Gast





BeitragVerfasst am: 29. Jun 2001 7:24   Titel: Re: Config File Werte finden und ändern

Zu sed & awk gibt' auf Anhieb 2 Bücher, eins von O'Reilly und eins von Addison-Wesley. Ist aber alleine für sed Overkill, über den gibt's nicht sooo viel zu wissen. Ein

info sed

bzw.

info gawk

bietet schon mal riesig viel Informationen. Wichtig für beide Tools (wie auch vi, perl, grep-Familie, expr, emacs, ...) ist das Verständnis für Reguläre Ausdrücke. Ansonsten: Die wichtigsten Kommandos des sed sind

s substitute (Suchen&Ersetzen)
d delete (Löschen)
q quit (Beenden)

Bei fast allem anderen wird der sed zu unbequem, und ich steige auf awk um.

Viel Spass beim Stöbern!
 

raffello
Gast





BeitragVerfasst am: 30. Jun 2001 7:35   Titel: Re: Config File Werte finden und ändern

Moin,

@Ozi

ein guter Einstieg zu sed und awk ist ein .pdf-File von der Fernuni Hagen, das von einem Vortrag im (SS 1995 ?) erstellt wurde.

CU
 

Ozi
Gast





BeitragVerfasst am: 30. Jun 2001 11:51   Titel: Re: Config File Werte finden und ändern

@raffello

aha, und wo krieg ich das her ?

cu

oliver
 

Sebastian Ude
Gast





BeitragVerfasst am: 30. Jun 2001 12:30   Titel: Re: Config File Werte finden und ändern

Datenmanipulation unter UNIX (sed und awk):

ftp://ftp.fernuni-hagen.de/pub/pdf/urz-broschueren/broschueren/b0069412.pdf
 

Hägar
Gast





BeitragVerfasst am: 03. Jul 2001 12:35   Titel: Re: Config File Werte finden und ändern

Moin,

@ Ozi

Dr Robert Capener's Home Page

Ansonsten kann man den Artikel von Jochen nur unterstreichen!

cu
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - Allgemein Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy