sed:没有正确解释变量中的转义字符

时间:2011-09-16 20:40:19

标签: bash sed awk

我试图用变量的值替换文件中的一行(该变量包含一个Windows路径)。虽然变量可以正确打印到STDOUT,但在sed中用于替换感兴趣的行时,反斜杠会消失。

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

CODE:

的WinPath = “\\\\ HD-地方\\ stor1 \\ fold1 \\归档\\ $ VAR1。$ VAR2 \\查看器”

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

我正在使用的SED命令是:cat file.xml | sed“3 c \   < \ RunFolder> $ WINPATH< / RunFolder>“(请原谅XML标签内的斜杠)

这输出:

\ HD-placestor1fold1archive $ VAR1。$ Var2Viewer

我想要的地方: \\ HD-地方\ stor1 \ fold1 \存档\ $ VAR1。$ VAR2 \查看器

1 个答案:

答案 0 :(得分:2)

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