我正在尝试使 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
尝试将分隔符更改为字符串中未包含的另一个分隔符。例如#
:
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!