【问题标题】:SED command giving error while replacing a stringSED 命令在替换字符串时出错
【发布时间】:2014-01-30 11:28:34
【问题描述】:

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

我有下面一行一个文件。

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: unknown option to `s'

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

谁能帮忙解决这个问题。

【问题讨论】:

    标签: linux sed


    【解决方案1】:

    如果要替换的模式或替换字符串包含斜线,请使用不同的分隔符,例如=:

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

    【讨论】:

    • 感谢您的快速帮助
    【解决方案2】:

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

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

    参考这个网址:http://www.grymoire.com/unix/Sed.html#uh-3

    【讨论】:

      猜你喜欢
      • 2021-10-28
      • 1970-01-01
      • 2019-11-08
      • 1970-01-01
      • 2021-05-16
      • 2016-10-30
      • 1970-01-01
      • 1970-01-01
      • 2015-03-24
      相关资源
      最近更新 更多