2011-09-16 10 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 |これは、この出力

(XMLタグ内のスラッシュを言い訳してください) " < \ 3 C \ RunFolder> $ WINPATH </RunFolder>" のsed:

HD-placestor1fold1archive $ VAR1 \ $ Var2Viewer

。私はこの好きな

:。 \\ HD-場所\ stor1 \ fold1 \アーカイブ\ $ VAR1 $ VAR2 \ビューア

答えて

2

sedも後にそれらを解釈するようあなたは、バックスラッシュのためのエスケープの一つの追加の層を必要とします変数が拡張されました。

+1

信じられないほどです。私は正直にこれを推測していただろう。魅力のように動作します(私のコードは恐ろしいですが)! – Nick

関連する問題