[英]Modify tomcat server.xml config using 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" />
-->
我怎么能從一個shellcript做到這一點? 優選地,它仍然適用於精確圖案的輕微修改。 我認為規則將是search for '<Connector port="8443"'
,然后在塊之前和之后刪除<!--
和-->
。
考慮在server.xml
上應用補丁。
生成補丁文件:
diff -ruN server.xml.old server.xml.new > mydiff.patch
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" /> - ---> (...)
然后,只需應用補丁:
patch server.xml mydiff.patch
您可以使用標志-N
運行patch
命令。 因此,它將跳過似乎已修補的文件。
這可能有效:
sed -nr '/^<!--/,/^-->/!{p;b};/^<!--/{h;d};H;/^-->/{x;/<Connector port="8443"/{s/(^<!--\s*\n|\n\s*-->)//g};p}'
這忽略了所有非注釋行。 將注釋行保存在保留空間中,如果注釋包含<Connector port="8443"
,則刪除開始/結束注釋分隔符,然后打印注釋/非注釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.