1

条件に従って、これら 2 つのステートメントのいずれかのコメントを外したいと思います。

#export CATALINA_OPTS="-javaagent:$TOMCAT_INSTALL_LOCATION/$APACHE_TOMCAT_VERSION/lib/oi-mule-libs/usage/injector.jar"

#export CATALINA_OPTS="-javaagent:$TOMCAT_INSTALL_LOCATION/$APACHE_TOMCAT_VERSION/lib/agents/cl-proxy-agent.jar"

次のsedコマンドを使用しました:

 #sed -i 's/#export CATALINA_OPTS="-javaagent:$TOMCAT_INSTALL_LOCATION/$APACHE_TOMCAT_VERSION/lib/oi-mule-libs/usage/injector.jar"/export CATALINA_OPTS="-javaagent:$TOMCAT_INSTALL_LOCATION/$APACHE_TOMCAT_VERSION/lib/oi-mule-libs/usage/injector.jar"/' $TOMCAT_HOME/bin/init-script.sh

次のエラーが発生しました:

sed: -e expression #1, char 85: unknown option to `s'

なぜこのエラーが発生したのですか?

上記のコマンドを変更して目的を達成するにはどうすればよいですか?

4

2 に答える 2

0

デリメータをsedコマンドに変更する必要があります。区切り文字は「/」です。これもパターンに表示され、エラーが発生します。これを試して:

sed 's:<pattern to be replaced>:<replacement pattern>:g'

ここで、gはグローバル、sは代替を表します。パターンに表示されていない他の区切り文字を使用できます。例ではコロン':'を使用しました

于 2012-06-18T11:27:28.080 に答える
0

バックスラッシュでスラッシュ文字をエスケープするか、「s」substitute コマンドの区切り文字として別​​の文字を使用する必要があります (sleep_dragon で指摘されているように)

 sed -e s/^#(.*\/injector.jar.*)/\1/ -e s/^#(.*\/cl-proxy-agent.jar.*)/\1/ $my_file

コメントを外す必要がある正確な文字列を識別するために、丸括弧内の正規表現を必要に応じて一意にします。

于 2012-07-12T18:07:15.983 に答える