【问题标题】:sed: not interpreting escape characters in variable correctlysed:未正确解释变量中的转义字符
【发布时间】:2011-09-17 04:48:49
【问题描述】:

我正在尝试用变量的值替换文件中的一行(该变量包含 Windows 路径)。尽管该变量正确打印到 STDOUT,但在 sed 中用于替换感兴趣的行时,反斜杠消失了。

知道如何解决这个问题吗?欢迎其他想法。

代码:

WINPATH="\\\\hd-place\\stor1\\fold1\\archive\\$VAR1.$Var2\\Viewer"

将其打印到屏幕上(应该如此):\\hd-place\stor1\fold1\archive\$VAR1.$Var2\Viewer

我使用的 SED 命令是:cat file.xml | sed "3 c\ $WINPATH"(请原谅 XML 标签内的斜线)

这会输出:

\hd-placestor1fold1archive$VAR1.$Var2Viewer

我想要这个: \\hd-place\stor1\fold1\archive\$VAR1.$Var2\Viewer

【问题讨论】:

    标签: bash sed awk


    【解决方案1】:

    反斜杠需要额外的转义层,因为sed 在变量展开后也会解释它们。

    【讨论】:

    • 难以置信。老实说,我曾经猜到过。像魅力一样工作(虽然我的代码很糟糕)!
    猜你喜欢
    • 2011-01-05
    • 1970-01-01
    • 2012-09-28
    • 2018-04-02
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    相关资源
    最近更新 更多