Найти и заменить рекурсивно в xml-файле пробелы в адресе электронной почты

Мы переносим старую среду в новую среду. Адреса электронной почты в старой среде могли иметь пробелы в начале или в конце. Однако в новых условиях это не допускается.

Пример файла:

<ГРУППА> <ИМЯ> (скрыто) ]]>

Отсюда вы можете видеть, что он имеет теги xml. и в таких тегах, как LASTNAME, FIRSTNAME и EMAIL, есть пробелы. Однако мне не нужны пробелы, например, между именами, например, в теге NAME «John Doe». Я хочу сохранить это так.

Как убрать конечные пробелы из файла после определенного имени тега и сохранить этот файл на месте или скопировать его в другой файл.

Желаемые результаты:

<ГРУППА> <ИМЯ> (скрытый) <ЛЮДИ objectclass="[objPeople, objlwsnRMResource, top]" id="jdoe2"> <ГРУППА> <ИМЯ> (скрытый)

Кто-нибудь делал что-нибудь подобное?

0
08.05.2019, 15:21
1 ответ

Вы можете использовать sedдля удаления пробелов, ведущих к последовательности ]]:

sed 's/ *]]/]]/g' file.xml

Здесь регулярное выражение " *]]" соответствует любому пробелу (" " )ноль или более раз (" *" ), за которым следует литерал " ]]». Любые такие совпадения затем заменяются на «]]». Результат записывается в stdout , где вы можете перенаправить его любым удобным способом.

Если у вас есть подходящая версия sed, вы можете использовать " \s" вместо " " для указания любого символа пробела (, т.е. не только пробелов, но также табуляции и другие непечатаемые -символы ).

0
28.01.2020, 03:45

Теги

Похожие вопросы