Редактируйте XML-файл, используя те же команды на Mac, Windows и Linux - PullRequest
0 голосов
/ 08 июля 2019

Попытка изменить 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

1 Ответ

1 голос
/ 08 июля 2019

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

sed -i 'new' 's/android/newtext/' output2.xml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...