2014-11-30 2 views
-1

У меня есть папка и подпапка, содержащая 2000 xml-файлов. Необходимо обработать все файлы с помощью систем BizTalk. Но некоторые из файлов имеют неправильные метки улицаName Bombay Crescent/addressRegion /улицаName .
Мне нужен вам grep, чтобы найти и заменить только теги worng. I.e с циклом for. Найдите любой XML-файл с неправильным тегом и замените его. Изменяется только тег "streetName". И только «addressRegion» находится не в том месте. хотел бы сделать Grep -PO где StreetName и ***/addressRegion, если условие истинно
заменить/addressRegion с/StreetNameИспользование grep для исправления XML-файлов

Заранее спасибо

+1

не ясно, что вы пытаетесь сделать. Покажите нам несколько примеров и покажите, что вы уже пробовали, чтобы мы могли вам помочь. – Andras

+0

У меня есть пример, но .. сайт не показывал код ... Bombay Crescent . streetName является элементом xml, который имеет адресRegion в качестве закрывающего тега. _Для адресаРегион должен быть изменен с помощью, который является правильным тегом .. Обратите внимание: я не могу правильно отобразить xml-код –

+0

ah, ok, что помогает – Andras

ответ

0

Ниже будет искать тег <streetName> что с соответствующим закрывающим тегом </addressRegion>, и изменит адресRegion на streetName. Он заменит все вхождения на линии. Название улицы не должно содержать никаких знаков <, что нарушит соответствие.

sed -e 's:\(<streetName>[^<]*\)</addressRegion>:\1</streetName>:g' 

Команда считывает свой стандартный вход и записывает стандартный вывод.

Sed -i будет делать замену на месте во всех его входных файлов:

sed -i -e 's:\(<streetName>[^<]*\)</addressRegion>:\1</streetName>:g' folder/subfolder/*.xml 
+0

Привет Андрас спасибо .. Небольшой вопрос .. Что делает -e в команде sed? –

+0

-e выполняет эту команду sed. s /// g (или s ::: g здесь, то же самое) выполняет поиск и замену в каждой строке ввода. Вы можете иметь несколько команд -e, каждый из них будет работать последовательно. Другая полезная команда: // d (удалить строки, соответствующие шаблону) – Andras

+0

Привет, спасибо .. еще один последний вопрос. что, если я решит изменить первый тег .. в этом случае streetName на адресRegion. т. е. streetName является неправильным тегом. Что мне нужно изменить в коде? –

Смежные вопросы