在Mac上用sed替换XML属性

时间:2015-04-20 09:57:41

标签: regex xml macos sed

我正在尝试在Mac OS X上用sed替换xml属性,但无法使其正常工作。

我想匹配name="..."并将其替换为name="Test"

我正在使用以下sed,这不起作用:

sed -i -E 's/name="\(.*?\)"/name="Test"/' file.xml

有人可以告诉我哪里出错了吗?

1 个答案:

答案 0 :(得分:4)

你不需要抓住小组等等。这应该足够了:

sed -E 's/name="[^"]*"/name="Test"/' file.xml

看到它只查找name=",后跟任何不属于"的字符。

测试

$ cat hi
<test name="hello buddy">aaa</test>
$ sed -E 's/name="[^"]*"/name="Test"/' hi
<test name="Test">aaa</test>