SED命令在替换字符串时给出错误

时间:2014-01-29 13:34:27

标签: linux sed

我需要用文件中的另一个字符串替换字符串。

我的下面一行是文件。

tibco.env.LD_LIBRARY_PATH %TPCL_HOME%/lib/httpclient_3.0:%TPC
L_HOME%/lib:%RV_HOME%/lib:%TRA_HOME%/icjava/6.2/lib:%LD_LIBRARY_PATH%

我需要用“tibco.env.LD_LIBRARY_PATH”替换 “tibco.env.LD_LIBRARY_PATH%RV_HOME%/ lib / 64:”

最后该行应

tibco.env.LD_LIBRARY_PATH %RV_HOME%/lib/64:%TPCL_HOME%/lib/httpclient_3.0:%TPC
L_HOME%/lib:%RV_HOME%/lib:%TRA_HOME%/icjava/6.2/lib:%LD_LIBRARY_PATH%

我尝试使用以下命令,但得到错误sed:-e expression#1,char 66:`s'的未知选项

sed -i s/"tibco.env.LD_LIBRARY_PATH "/"tibco.env.LD_LIBRARY_PATH %RV_HOME%/lib/64:"/ bwengine.tra

有人可以帮助解决问题。

2 个答案:

答案 0 :(得分:1)

如果要替换的模式或替换字符串包含斜杠,请使用其他分隔符,例如=

s="tibco.env.LD_LIBRARY_PATH "="tibco.env.LD_LIBRARY_PATH %RV_HOME%/lib/64:=

答案 1 :(得分:0)

您可能会认为使用&作为匹配字符串,这将减少sed命令的长度。

sed 's!tibco.env.LD_LIBRARY_PATH !&%RV_HOME%/lib/64:!' file

请参阅此网址:http://www.grymoire.com/unix/Sed.html#uh-3