Вопрос

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

У меня есть несколько XML-файлов, для замены которых требуется некоторый текст между тегами.Как мне избежать '>' и '<- персонажи.

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

Это было полезно?

Решение

ОК.Выяснил сам.Используйте кавычки.

$ sed -i "s/>foo</>bar</g" file

Другие советы

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

sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml

Экранируйте их с помощью обратной косой черты

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top