sed: неправильно интерпретирует управляющие символы в переменной - PullRequest
0 голосов
/ 17 сентября 2011

Я пытаюсь заменить строку в файле значением переменной (переменная содержит путь к 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 \ <\ RunFolder> $ WINPATH " (прошу прощения за косую черту внутри тегов XML)

Это выводит это:

\ hd-placestor1fold1archive $ VAR1. $ Var2Viewer

Где, как я хочу, это: \\ hd-place \ stor1 \ fold1 \ archive \ $ VAR1. $ Var2 \ Viewer

1 Ответ

2 голосов
/ 17 сентября 2011

Для обратной косой черты необходим один дополнительный слой escape-символов, поскольку sed также интерпретирует их после раскрытия переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...