2014-10-16 3 views
1

Я пытаюсь с помощью sed изменить server.xml и конкретно порт прослушивания TOMCAT в этих линияхИзменить порт прослушивания кот с использованием СЭД

<Connector port="8080" protocol="HTTP/1.1" 
     connectionTimeout="20000" 
     redirectPort="8443" /> 

Очень важно, чтобы это сделать хотя bash сценарий. Я пытаюсь variete предоставленный сценарий (в частности, строка sed) из этого answer, но я совершенно newbe до sed, и поэтому я терплю неудачу.

Я также попытался что-то вроде этого

sed -i "s|Connector port=[^ ]*|Connector port=8880|g" $CNF_PATH 

Любые идеи было бы полезно.

+0

Что ваш ожидаемый результат? –

+0

@AvinashRaj Я хочу изменить 'port =" 8080 "' to 'port =" 8880 "' – Athafoud

ответ

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"

Если вы хотите repace любой номер порта с 8880 вы можете использовать

sed -r 's/port="[0-9]{4}"/port="8880"/g' inputfile 

[0-9] соответствует любая цифра {4} соответствует Previos шаблон для все тоже в 4 раза.

+0

Это трюк, вы можете отредактировать свой ответ на этот порт 'sed -i 's/port =" 8080 "/ port = "8880"/g 'inputfile', который немного более общий. – Athafoud

+0

@ Афафуд, который будет лучше. отредактирует ответ. :) – nu11p01n73R

1

Вы можете попробовать ниже патч в следующей команде,

sed -i 's|\(Connector port="\)[^"]*"|\18880"|g' file 
+0

Это тоже работает! Благодаря! – Athafoud

1

Можно также обойтись без sed и вместо того, чтобы использовать возможности Tomcat для замещению свойств системы в server.xml:

<Connector port="${tomcat-connector-port}" ... /> 

Тогда, когда запуск Tomcat, использование:

$ CATALINA_OPTS="-Dtomcat-connector-port=1234" bin/catalina.sh start 
+0

Мой вопрос относится к реальной проблеме, когда мой скрипт отвечает за настройку tomcat, но не за запуск/останов/перезапуск. Поэтому ваш ответ неприменим. Однако, если проблема была другой, я предпочел бы ваш подход вместо 'sed'. – Athafoud

1

Для уточнения HTTP порт Разъем:

экспорт TOMCAT_HTTP_PORT = "35000"

sed -e 's/\(<Connector[ ]*\)\(port=\"[0-9]*\"\)\([ ]*protocol=\"HTTP.*\)/\1port="'$TOMCAT_HTTP_PORT'"\3/' </your/path/to/tomcat>/conf/server.xml 
Смежные вопросы