我猜這必須是一個逃避的問題,但我找不到它。最令人沮喪的是,這是基於我以前使用過的舊版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