2011-09-16 34 views
0

我試圖用一個變量的值(該變量包含一個Windows路徑)替換文件中的一行。雖然變量可以正確打印到STDOUT,但在sed中用於替換感興趣的行時,反斜槓將消失。sed:沒有正確解釋變量中的轉義字符

任何想法如何彌補這一點?其他想法歡迎。

CODE:

的WinPath = 「\\\\ HD-地方\\ \\ stor1 \\ fold1存檔\\ $ VAR1 $ VAR2 \\瀏覽器。」

打印屏幕(如它應該):\\ hd-place \ stor1 \ fold1 \ archive \ $ VAR1。$ Var2 \ Viewer

我使用的SED命令是:cat file.xml | SED 「3C \ < \ RunFolder> $的WinPath </RunFolder>」(請原諒XML標籤內的斜線)

此輸出這樣的:

\ HD-placestor1fold1archive $ VAR1 $ Var2Viewer

在哪裏,我想這一點: \\ HD-地方\ stor1 \ fold1 \存檔\ $ VAR1 $ VAR2 \瀏覽器

回答

2

你需要轉義爲反斜槓的一個附加層,作爲sed後也解釋它們。變量已被擴展。

+1

令人難以置信。我真的會想到這一點。像魅力一樣工作(儘管我的代碼很可怕)! – Nick