Hei,
Under en installasjon prosess i et bash-skript jeg trenger å gjøre 2 ting med 2 XML-filer. Har bruken av
sed på noen måte berøre XML-filen?
1.Add til en inndeling i <ServerListeners> seksjon
<ServerListener>
<BaseClass> Myapp.module.WowConfigurator </ BaseClass>
</ ServerListener>
Nedenfor koden gjør jobben, men det spiller, ikke formatere xml-filen ved å legge til kategorier og alle. Er det greit fra en XML-fil synspunkt?
Code:
ISLISTENER=`grep -n "myapp" $WOW_HOME/conf/Server.xml|cut -d":" -f1 |head -1`
if [ ${ISLISTENER} == "" ]
then
INSERTLINE=`grep -n "ServerListeners" $WOW_HOME/conf/Server.xml|cut -d":" -f1 |head -1`
sed -e ''${INSERTLINE}'a\</ServerListener>''' $WOW_HOME/conf/Server.xml > $WOW_HOME/conf/Server.xml_new
mv $WOW_HOME/conf/Server.xml_new $WOW_HOME/conf/Server.xml
sed -e ''${INSERTLINE}'a\<BaseClass>myapp.module.WowConfigurator</BaseClass>''' $WOW_HOME/conf/Server.xml > $WOW_HOME/conf/Server.xml_new
mv $WOW_HOME/conf/Server.xml_new $WOW_HOME/conf/Server.xml
sed -e ''${INSERTLINE}'a\<ServerListener>''' $WOW_HOME/conf/Server.xml > $WOW_HOME/conf/Server.xml_new
mv $WOW_HOME/conf/Server.xml_new $WOW_HOME/conf/Server.xml
fi
2. Med en
sed kommando jeg trenger for å erstatte verdien av et første forekomst av en parameter:
XML-filen inneholder:
Code:
<IpAddress>*</IpAddress>
<Port>1935</Port>
Og jeg trenger å bytte ut med $ BINDADDRESS og $ BINDPORT variabler. Det jeg ikke klarer å finne det ut.
Takk,
Bianca