在Mac,Windows和Linux上使用相同的命令编辑XML文件

时间:2019-07-08 01:08:23

标签: xml sed

尝试将name =“ Android”更改为name =“ Android1”,name =“ Android2”等。

需要在Windows,macOS和Linux上使用命令行运行python脚本。

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命令吗?似乎我做错了,因为在使用sed命令编辑XML时遇到了一些问题。

主要参考文献

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 个答案:

答案 0 :(得分:1)

您必须给替换模式btw加上一个结尾分隔符,因为您为备份文件指定了-i标志,因此它不应是零长度的扩展名,至少对于macOS而言,检查有关它的手册页。

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