Редактируйте XML-файл, используя одни и те же команды на Mac, Windows и Linux.

Попытка изменить name="Android" на name="Android1", name="Android2" и т. д.

Потребуется запустить мой скрипт Python с помощью командной строки в Windows, macOS и Linux.

Output2.xml

<?xml version="1.0" encoding="UTF-8"?> 
    <robot generator="Robot 2.9 (Python 3.6.8 on linux)" generated="20190701 08:47:35.439"> 
    <suite id="s1" name="Android" source="/FILEPATHHERE">
    #ommitted unrelevant lines from xml file

Проблема

Я попробовал несколько способов, перечисленных в Stackoverflow, но понял, что это не так просто, как кажется.

Просто пробовал способы использования моего терминала Mac, и когда я попытался запустить это:

sed -i 's/android/newtext' output2.xml 

Ошибка: sed: 1: "output2.xml": неверный код команды o

Добавлено в '', но появилась еще одна новая ошибка:

sed -i '' 's/android/newtext' output2.xml

Ошибка: sed: 1: "s/android/newtext": незавершенная замена в регулярном выражении

Могу ли я использовать команды sed? Похоже, я делаю это неправильно, так как у меня есть некоторые проблемы с редактированием XML с помощью команд sed.

Основные ссылки

https://askubuntu.com/questions/20414/find-and-replace-text-within-a-file-using-commands https://superuser.com/questions/916665/edit-xml-file-using-shell-script-command


person Mason    schedule 08.07.2019    source источник


Ответы (1)


Вы должны указать конечный разделитель для шаблона замены, кстати, поскольку вы указываете флаг -i для файла резервной копии, для этого не должно быть расширения нулевой длины, по крайней мере, для macOS, проверьте справочную страницу об этом.

sed -i 'new' 's/android/newtext/' output2.xml
person Itachi    schedule 08.07.2019