Замена встроенной строки в файле с помощью sed - PullRequest
0 голосов
/ 19 октября 2011

В одном из моих сценариев запуска (abc.sh) ниже строчки:

runuser root -c "export CATALINA_OPTS=\"-Xms5g -Xmx10g\"; \
    nohup $CATALINA_HOME/bin/startup.sh $CATALINA_HOME > /dev/null &"

Я хочу заменить -Xms5g -Xmx10g на строку ниже:

-Xms500m -Xmx1g -Xrunjdwp:transport=dt_socket,address=9000,server=y,suspend=n

Я написал скрипт myscript.sh, который содержит следующий код:

#!/bin/bash
sed -i~ 's/-Xms5g -Xmx10g/-Xms500m \
    -Xmx1g -Xrunjdwp:transport=dt_socket,address=9000,server=y,suspend=n' ./abc.sh

Но это дает мне ошибку:

sed: -e expression #1, char 95: unterminated `s' command

Может ли кто-нибудь помочь мне исправить эту команду?

Примечание: в abc.sh

есть и другие строки

Спасибо!

1 Ответ

1 голос
/ 19 октября 2011

Вам не удалось добавить / в конце.

sed -i~ 's/-Xms5g\s*-Xmx10g/-Xms500m -Xmx1g \
    -Xrunjdwp:transport=dt_socket,address=9000,server=y,suspend=n/' ./abc.sh 

Шаблон должен быть таким: s/regexp/replacement/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...