【发布时间】:2013-06-12 19:44:50
【问题描述】:
我正在尝试用 sed(在 OS X 中)将一个字符串替换为第二个字符串的第一个实例。不幸的是,我的 sed 命令替换了直到第二个字符串的最后一个实例的所有内容。
我的文字:
<li>lorem ipsum</li><li>dolor sit amet</li><li>something</li><li></li>
我需要删除 <li>lorem ipsum</li> 以便新行如下所示:
<li>dolor sit amet</li><li>something</li><li></li>
不幸的是,我的 sed 命令替换了整行:
sed -i "" 's:<li>lorem.*</li>::'
你知道如何用 sed 解决这个问题吗?
谢谢 AleV
【问题讨论】:
-
sed 's:<li>lorem.[a-z]*</li>::'呢? -
就像一个魅力。谢谢!
-
更一般地说,`sed 's:
- lorem[^::' - 这并不假设您在文本中只有字母。但是,正则表达式通常不能解析不是正则语言的 XML:您应该寻找 XML 或 HTML 解析器。