24.03.2024, 15:46
Ich weiss nicht genau was du meinst, aber wenn es darum geht eine Zeile mit einer IP Adresse in einer .ini Datei zu ersetzen, dann bieten sich die Befehle, awk, gawk oder sed an. Alle drei sind Editoren mit ihren eigenen Eigenschaften.
Zum Beispiel habe ich hier in der Datei demo.ini einen Ausschnitt aus einer OpenSim.ini genommen. Das sieht dann so aus:
Mit folgender Befehlszeile tausche ich mit sed die Zeile mit dem BaseHostname mit der IPv4 Adresse meines Hosts aus:
Meine demo.ini sieht danach so aus:
Hinweis: Die IP Adresse habe ich mit hostname -I erhalten, das alle IP-Adressen zurückgibt. In meinem Fall ist es eine IPv4-Adresse und eine IPv6 Adresse (116.203.93.82 2a01:4f8:1c1b:67fc::1). Da ich annehme, dass immer zuerst die IPv4 Adresse ausgegeben wird, habe ich diese mit cut vor dem ersten Space übernommen.
Ich habe das kurz unter Ubuntu 22.04 ausprobiert. Ob so etwas für deinen Anwendungsfall auch funktioniert, weiss ich nicht.
Zum Beispiel habe ich hier in der Datei demo.ini einen Ausschnitt aus einer OpenSim.ini genommen. Das sieht dann so aus:
Code:
[Const]
; this section defines constants for grid services
; to simplify other configuration files default settings
;# {BaseHostname} {} {BaseHostname} {"example.com" "127.0.0.1"} "127.0.0.1"
BaseHostname = "127.0.0.1"
;# {BaseURL} {} {BaseURL} {"http://${Const|BaseHostname}} "http://${Const|BaseHostname}"
BaseURL = http://${Const|BaseHostname}
Mit folgender Befehlszeile tausche ich mit sed die Zeile mit dem BaseHostname mit der IPv4 Adresse meines Hosts aus:
Code:
IP=$(hostname -I|cut -d ' ' -f 1); sed -i "/BaseHostname =/c\ BaseHostname = \"$IP\"" demo.ini
Meine demo.ini sieht danach so aus:
Code:
[Const]
; this section defines constants for grid services
; to simplify other configuration files default settings
;# {BaseHostname} {} {BaseHostname} {"example.com" "127.0.0.1"} "127.0.0.1"
BaseHostname = "116.203.93.82"
;# {BaseURL} {} {BaseURL} {"http://${Const|BaseHostname}} "http://${Const|BaseHostname}"
BaseURL = http://${Const|BaseHostname}
Hinweis: Die IP Adresse habe ich mit hostname -I erhalten, das alle IP-Adressen zurückgibt. In meinem Fall ist es eine IPv4-Adresse und eine IPv6 Adresse (116.203.93.82 2a01:4f8:1c1b:67fc::1). Da ich annehme, dass immer zuerst die IPv4 Adresse ausgegeben wird, habe ich diese mit cut vor dem ersten Space übernommen.
Ich habe das kurz unter Ubuntu 22.04 ausprobiert. Ob so etwas für deinen Anwendungsfall auch funktioniert, weiss ich nicht.