sed, заменяющий литерал $ {кое-что} в тегах xml - PullRequest
1 голос
/ 29 октября 2011

Я пытаюсь сделать следующее:

find . -iname pom.xml 
| xargs sed -i 
 "s/<version>${project.version}</version>/<version>0.9.1-SNAPSHOT</version>/g"

Но это не работает.Что все, что мне нужно, чтобы сбежать здесь?

Я пробовал несколько комбинаций, таких как экранирование / в версии и $.

Ответы [ 2 ]

5 голосов
/ 29 октября 2011

Побег $ и ..Используйте другой разделитель (;).

sed "s;<version>\${project\.version}</version>;<version>0.9.1-SNAPSHOT</version>;g"
0 голосов
/ 29 октября 2011

Строка соответствия: <version>\${project\.version}<\/version> (экранируйте $, . и /).Строка замены, которую вы хотите: <version>0.9.1-SNAPSHOT<\/version> (экранируйте /).

Комбинированный, что дает:

"s/<version>\${project\.version}<\/version>/<version>0.9.1-SNAPSHOT<\/version>/g"

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