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

我需要在sed的tomcat.javaoptions結尾添加新行。我必須使用正則表達式,因爲我不知道java選項最初的樣子。我只知道它從tomcat.javaoptions=開始,可以有多行。任何想法?使用sed編輯java選項

編輯: 我需要增加新的生產線

... 
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取代。