1

私はsedコマンドでこれらを置き換えようとしています:

CURRENT_TOMCAT=/opt/tomcat/lib
NEW_TOMCAT=/usr/tomcat/lib
sed -i "s/$CURRENT_TOMCAT/$NEW_TOMCAT/" tomcat.env 

いくつかの組み合わせを試してみましたが、成功しませんでした.`s'エラーに不明なオプションが表示されることもあれば、エラーが発生しないこともありますが、変更は行われません

変更する必要がある行 I は次のようになります。

TOMCAT_LIB=/opt/tomcat/lib; export TOMCAT_LIB
4

1 に答える 1

4

区切り文字を、文字列に含まれていない別のものに変更してみてください。たとえば、#次のとおりです。

CURRENT_TOMCAT=/opt/tomcat/lib
NEW_TOMCAT=/usr/tomcat/lib
sed -i "s#$CURRENT_TOMCAT#$NEW_TOMCAT#" tomcat.env 
         ^               ^           ^

テスト

$ cat a
hello/how are you?

$ old="hello/how"
$ new="bye/how"

$ sed "s/$old/$new/" a
sed: -e expression #1, char 13: unknown option to `s' <---- meeec

$ sed "s#$old#$new#" a
bye/how are you?                                      <---- successful!
于 2013-11-01T14:47:30.690 に答える