使用sed修改tomcat server.xml配置

Jer*_*oen 2 regex linux bash tomcat sed

我正在制作一个依赖于Tomcat7通过HTTPS的Ubuntu软件包.为了方便我们的客户,我希望软件包的安装脚本在Tomcat7中启用HTTPS.这很容易手动完成; 在文件/etc/tomcat7/server.xml中,需要取消注释以下块:

<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
           maxThreads="150" scheme="https" secure="true"
           clientAuth="false" sslProtocol="TLS" />
-->
Run Code Online (Sandbox Code Playgroud)

我怎么能从一个shellcript做到这一点?优选地,它仍然适用于精确图案的轻微修改.我认为规则将是块的search for '<Connector port="8443"'然后<!---->之前和之后删除的东西.

Thi*_*elo 7

考虑在你的身上申请补丁server.xml.

  1. 生成补丁文件:

    diff -ruN server.xml.old server.xml.new > mydiff.patch
    
    Run Code Online (Sandbox Code Playgroud)

    server.xml.old原始文件在哪里,并且server.xml.new是您想要的文件.

    补丁(mydiff.patch)将如下所示:

    --- server.xml.old  2011-10-29 04:03:25.000000000 -0300
    +++ server.xml.new 2011-10-29 04:04:03.000000000 -0300
    @@ -1,10 +1,10 @@
     (...)
    
    - <!--
      <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
                maxThreads="150" scheme="https" secure="true"
                clientAuth="false" sslProtocol="TLS" />
    - --->
    
     (...)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 然后,只需应用补丁:

     patch server.xml mydiff.patch
    
    Run Code Online (Sandbox Code Playgroud)

    您可以patch使用该标志运行该命令-N.因此,它将跳过似乎已修补的文件.