我正在尝试在Mac OS X上用sed
替换xml属性,但无法使其正常工作。
我想匹配name="..."
并将其替换为name="Test"
。
我正在使用以下sed,这不起作用:
sed -i -E 's/name="\(.*?\)"/name="Test"/' file.xml
有人可以告诉我哪里出错了吗?
答案 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>