regex - 在 Mac 上用 sed 替换 XML 属性

标签 regex xml macos sed

我尝试在 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/

相关文章:

cocoa - 如何在 Mac OS X 中截取 "apple mail"和 "entourage"内的电子邮件屏幕截图?

java - 包含数字和数字组的复杂正则表达式

regex - 提取模式之间的内容

java - 安全处理 org.xml.sax.SAXNotRecognizedException 导致 java.lang.IllegalStateException 在 Tomcat 中运行的解决方案

ruby - 如何在恢复模式下运行 ruby​​ SAX 解析器?

cocoa - 以编程方式强制 Cocoa 应用程序以 32 位模式启动

linux - 在 Linux 上获取即将到来的加拿大国庆日的具体星期几

regex - 引用-此正则表达式是什么意思?

java - 正则表达式包括所有西类牙字符和数字

c# - 如何在 C# 中将 DataTable 转换为 XML 文件?