2006-09-23

删除HTML标记

删除HTML文件里的标记,看似一个简单的文本替换,但是关键是如何写匹配的正则表达式。


像下面这样的命令是不能完成的。
$ sed -e 's/< .*>//g' myfile.html


因为当 sed 试图在行中匹配规则表达式时,它要在行中查找最长的匹配


解决办法是,不输入“'< ' 字符后面跟有一些字符并以 '>' 字符结束”的规则表达式,而只需输入一个“'< ' 字符后面跟有任意数量非 '>' 字符并以 '>' 字符结束”的规则表达式。这将与最短、而不是最长的可能性匹配。新命令应该是:


$ sed -e 's/< [^>]*>//g' myfile.html

没有评论:

发表评论