从文本文件中删除链接

时间:2010-07-04 23:05:40

标签: regex sed html-parsing

如何从原始html文本中删除链接?我有:

Foo bar <a href="http://www.foo.com">blah</a> bar foo 

并希望得到:

Foo bar blah bar foo

之后。

4 个答案:

答案 0 :(得分:2)

您正在寻找使用regexp和this won't work in all but the simplest cases解析HTML,因为HTML不是常规的。更可靠的解决方案是使用HTML解析器。对于许多不同的语言,存在许多。

答案 1 :(得分:2)

sed -re 's|<a [^>]*>([^<]*)</a>|\1|g'

但Brian的回答是正确的:这应该仅用于非常简单的情况。

答案 2 :(得分:0)

尝试:

sed -e 's/<a[^>]*>.*<\/a>//g' test.txt

答案 3 :(得分:0)

$ echo 'Foo bar <a href="http://www.foo.com">blah</a> bar foo' | awk 'BEGIN{RS="</a>"}/<a href/{gsub(/<a href=\042.*\042>/,"")}1'

Foo bar blah  bar foo