Replace delimited block of text in file with the contents of another file
Posted
by rmarimon
on Stack Overflow
See other posts from Stack Overflow
or by rmarimon
Published on 2010-04-23T15:11:16Z
Indexed on
2010/04/23
15:13 UTC
Read the original article
Hit count: 355
I need to write a simple script to replace a block of text in a configuration file with the contents of another file.
Let's assume with have the following simplified files:
server.xml
<?xml version='1.0' encoding='UTF-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="80" protocol="HTTP/1.1"/>
<Engine name="Catalina" defaultHost="localhost">
<!-- BEGIN realm -->
<sometags/>
<sometags/>
<!-- END realm -->
<Host name="localhost" appBase="webapps"/>
</Engine>
</Service>
</Server>
realm.xml
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
I want to run a script and have realm.xml
replace the contents between the <!-- BEGIN realm -->
and <!-- END realm -->
lines. If realm.xml
changes then whenever the script is run again it will replace the lines again with the new contents of realm.xml
. This is intended to be run in /etc/init.d/tomcat
on startup of the service on multiple installations on which the realm is going to be different.
I'm not so sure how can I do this simply with awk
or sed
.
© Stack Overflow or respective owner