Escape <and>в sed / shell - PullRequest
       42

Escape <and>в sed / shell

3 голосов
/ 30 сентября 2008

Как мне избежать символов '<' и '>' в sed.

У меня есть несколько xml-файлов, которым необходимо заменить текст между тегами. Как мне избежать символов «>» и «<». </p>

Проблема с> и <в том, что она имеет особое значение в оболочке для перенаправления вывода в файл. Так что обратная косая черта не работает. </p>

Ответы [ 3 ]

5 голосов
/ 30 сентября 2008

Хорошо. Узнал сам. Используйте кавычки.

$ sed -i "s/>foo</>bar</g" file
0 голосов
/ 30 сентября 2008

Просто поставьте перед ними обратную косую черту или заключите их в одинарные или двойные кавычки. Если подумать, ваш вопрос, я думаю, должен быть более ясным. Вы пытаетесь использовать sed для обработки XML-файла и хотите узнать, что находится между тегом? Тогда вы хотите:

sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml
0 голосов
/ 30 сентября 2008

Побег с обратной косой чертой

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