我猜这必须是一个逃避的问题,但我找不到它。最令人沮丧的是,这是基于我以前使用过的旧版sed脚本,那么为什么我在一年后尝试重新使用脚本时无法使其工作? ;)如何解决这个sed问题与未终止的行?
框架:
我有在它的文件名列表,都需要同样的 串HTML的搜索和替换的文件。
我需要
<a href="foo.html">Foo</a><a href="bar.html">Bar</a>
我是用更换
<a href="foo.html">Foo</a>
:
#!/bin/bash
for i in $(cat sourcelist); do cat $i | sed 's,<a href="foo.html">Foo</a>,<a href="foo.html">Foo</a><a href="bar.html">Bar</a>,g' > $i.bak ; mv $i.bak $i ; done
#end
但我得到SED错误 “未结束的'S'命令”。
我试图逃避双引号,斜线,两者仍然不能得到它的解析。
这是晚了,我失去焦点。那里有什么尖锐的眼睛可以抓住我失踪的东西?
它运行得很好。你在做替换就像上面那样或者是foo和bar(也许你有一个额外的逗号的地方?) – Amro 2009-11-03 07:13:06
而不是试图逃避的东西,为什么不尝试消除它们只是举个例子?尝试使用BAR作为替代文本,单独匹配第一个标记,单独匹配“foo.html”,单独匹配.html。简化,直到sed停止抱怨,然后看看问题是什么。 – Beta 2009-11-03 20:03:21
好点Beta,一次解决它并不总是最好的主意。 :) – 2009-11-04 02:09:07