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"'
然后<!--
和-->
之前和之后删除的东西.
考虑在你的身上申请补丁server.xml
.
生成补丁文件:
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)然后,只需应用补丁:
patch server.xml mydiff.patch
Run Code Online (Sandbox Code Playgroud)
您可以patch
使用该标志运行该命令-N
.因此,它将跳过似乎已修补的文件.