Вопрос
Как мне сбежать '< символ ' и '>' в sed.
У меня есть несколько XML-файлов, для замены которых требуется некоторый текст между тегами.Как мне избежать '>' и '<- персонажи.
Проблема с > и < это имеет особое значение в командной оболочке для перенаправления выходных данных в файл.Таким образом, обратная косая черта не работает.
Решение
ОК.Выяснил сам.Используйте кавычки.
$ sed -i "s/>foo</>bar</g" file
Другие советы
Просто поставьте перед ними обратную косую черту или заключите их в одинарные или двойные кавычки.С другой стороны, я думаю, что ваш вопрос должен быть более ясным.Вы пытаетесь использовать sed для обработки XML-файла и хотите получить то, что находится между тегами?Тогда вы хотите:
sed -re 's@(<TAG.*?>).*?(</TAG>)@\1hi\2@' test.xml
Экранируйте их с помощью обратной косой черты
Не связан с StackOverflow