我尝试在 Mac OS X 上用 sed
替换 xml 属性,但无法使其正常工作。
我想匹配 name="..."
并将其替换为 name="Test"
。
我正在使用以下 sed,但它不起作用:
sed -i -E 's/name="\(.*?\)"/name="Test"/' file.xml
谁能告诉我错在哪里吗?
最佳答案
你不需要 catch 团体等。这应该足够了:
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>
关于regex - 在 Mac 上用 sed 替换 XML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29744669/