我正在尝试使用sed
来改变tomcat的server.xml
,特别是这些行中的侦听端口
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
通过bash
脚本执行此操作至关重要。
我试图通过answer来提供所提供的脚本(特别是sed
行),但我对sed
完全是新手,所以我失败了。
我也试过这样的事情
sed -i "s|Connector port=[^ ]*|Connector port=8880|g" $CNF_PATH
任何见解都会有所帮助。
答案 0 :(得分:3)
sed -i 's/port="8080"/port="8880"/' inputfile
将提供输出
<Connector port="8880" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
它的作用是什么?
s
命令替换。
它将模式Connector port="8080"
替换为Connector port="8880"
如果您想使用8880
重新设置任何端口号,可以使用
sed -r 's/port="[0-9]{4}"/port="8880"/g' inputfile
[0-9]
匹配任何数字
{4}
与preios模式匹配4次。
答案 1 :(得分:1)
你可以试试下面的sed命令,
sed -i 's|\(Connector port="\)[^"]*"|\18880"|g' file
答案 2 :(得分:1)
您还可以免除sed
,而是使用Tomcat在server.xml中进行系统属性替换的能力:
<Connector port="${tomcat-connector-port}" ... />
然后,在启动Tomcat时,使用:
$ CATALINA_OPTS="-Dtomcat-connector-port=1234" bin/catalina.sh start
答案 3 :(得分:1)
要专门更新HTTP连接器端口:
导出TOMCAT_HTTP_PORT =&#34; 35000&#34;
sed -e 's/\(<Connector[ ]*\)\(port=\"[0-9]*\"\)\([ ]*protocol=\"HTTP.*\)/\1port="'$TOMCAT_HTTP_PORT'"\3/' </your/path/to/tomcat>/conf/server.xml