[英]using sed with local variables that have /
我正在尝试使用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!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.