2016-12-02 9 views
0
... 
tomcat.javaoptions=-Djava.net.preferIPv4Stack\=true \ 
-Djava.net.preferIPv6Addresses\=false \ 
-Dcom.sun.management.jmxremote.port\=12345 \ 
-Djava.rmi.server.hostname=${application.hostname} 
... 

Мне нужно добавить новую строку в конец tomcat.javaoptions с sed. Мне нужно использовать регулярное выражение, потому что я не знаю, как будут выглядеть варианты Java. Я знаю только, что он начинается с tomcat.javaoptions= и может иметь несколько строк. Есть идеи?Редактировать параметры java с помощью sed

EDITED: мне нужно, чтобы добавить новую линию

... 
tomcat.javaoptions=-Djava.net.preferIPv4Stack\=true \ 
-Djava.net.preferIPv6Addresses\=false \ 
-Dcom.sun.management.jmxremote.port\=12345 \ 
-Djava.rmi.server.hostname=${application.hostname} \ 
-agentpath:/opt/agent/agent.so,name=agent 
... 

Я попытался это просто добавить только «-agentpath», но не повезло

sed -i "/^tomcat.javaoptions=(.*/n*)*/s/$/ \\\\\n -agentpath/g" file 

ответ

0

Я не знаю, что конец tomcat.javaoptions Состояние есть, но я изменяю ваш сценарий, поэтому он работает:

sed -r -i -e "/^tomcat.javaoptions=(.*\n*)*/s/$/ \n -agentpath/g" File 

Изменения:

  • Не забудьте добавить -r параметр в sed,
  • заменить вашу /n с \n.