Замена всего `&`, но не единственного в XML-сущности `& amp;` с `#` с sed в заданном теге XML

Мне нужно было заменить все & # , внутри и внутри <faultstring> ... </faultstring> . Кроме того, & in &amp; не следует изменять. Пример ввода:

 123&&<faultcode>IBM.Error<faultstring>special character & and one converted &amp;</faultstring></faultcode>&&123 

Ожидаемый результат:

 123&&<faultcode>IBM.Error<faultstring>special character # and one converted &amp;</faultstring></faultcode>&&123 

Следующий работает с границей, но также заменяет &amp; с #amp;

 sed -e :1 -e 's@\(<faultstring>.*\)&\(.*</faultstring>\)@\1#\2@;t1' 

Кроме того, я заменяю эти шаблоны inplace файлом.

PS: Я создал новый вопрос, чтобы избежать путаницы в моем предыдущем потоке . Если вы, ребята, обнаружили, что это может быть объединено в предыдущем потоке, пожалуйста, сделайте это. Я просто надеюсь, что новый поток привлечет людей, чтобы быстро ответить, и свести к минимуму путаницу.

One Solution collect form web for “Замена всего `&`, но не единственного в XML-сущности `& amp;` с `#` с sed в заданном теге XML”

Это сработало для меня:

 sed -e :1 -e 's@\(<faultstring>.*\)&\([^amp;]\)\(.*</faultstring>\)@\1#\2\3@;t1' file 

Чтобы заменить его на &amp; использовать это:

 sed -e :1 -e 's@\(<faultstring>.*\)&\([^amp;]\)\(.*</faultstring>\)@\1\&amp;\2\3@;t1' file 
  • Удалить тег и содержимое на основе дочернего тега и добавить новый контент - Shellscript xml
  • конвертировать CDA XML в PDF без * TeX?
  • Как сгенерировать HTML-отчет nmap с помощью python?
  • поиск и замена строки
  • Скрипт для изменения файла конфигурации XML
  • как сравнить два xml-файла с одинаковыми данными в разных строках?
  • Как проверить корректность XML-файла 4 ГБ?
  • половину числовых полей выше 10000, падение десятичных знаков
  • показывать только теги XML-документа в командной строке
  • Как заменить «& # x5c» на «/» в файле с помощью командной строки?
  • Как синхронизировать 2 xml-файла?
  • Egrep несколько строк в файле XML
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.