【发布时间】:2011-02-11 13:58:24
【问题描述】:
我需要编写一个简单的脚本来将配置文件中的一段文本替换为另一个文件的内容。
假设有以下简化文件:
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"/>
我想运行一个脚本并让realm.xml 替换<!-- BEGIN realm --> 和<!-- END realm --> 行之间的内容。如果realm.xml 发生变化,那么每当脚本再次运行时,它将再次用realm.xml 的新内容替换这些行。这旨在在领域将不同的多个安装上的服务启动时在/etc/init.d/tomcat 中运行。
我不太确定如何简单地使用 awk 或 sed 来做到这一点。
【问题讨论】:
标签: bash shell scripting sed awk