Convert this character based table into html one
Ruby: 233 characters
BEGIN{puts&quot;&lt;table&gt;&quot;;f=[]};if/^[-|]+$/ then if f!=[] then puts&quot;&lt;tr&gt;\n#{f[1..-2].map{|i|&quot;    &lt;td&gt;#{i.join&quot;&lt;br/&gt;&quot;}&lt;/td&gt;&quot;}*$/}\n&lt;/tr&gt;\n&quot;;f=[]end else$F.each_index{|i|f[i]||=[];f[i]&lt;&lt;CGI.escapeHTML($F[i])if$F[i]&gt;&quot;&quot;}end;END{puts&quot;&lt;/table&gt;&quot;}

Sample run:
bash-4.2$ ruby -naF' *\| *' -r cgi -e 'BEGIN{puts&quot;&lt;table&gt;&quot;;f=[]};if/^[-|]+$/ then if f!=[] then puts&quot;&lt;tr&gt;\n#{f[1..-2].map{|i|&quot;    &lt;td&gt;#{i.join&quot;&lt;br/&gt;&quot;}&lt;/td&gt;&quot;}*$/}\n&lt;/tr&gt;\n&quot;;f=[]end else$F.each_index{|i|f[i]||=[];f[i]&lt;&lt;CGI.escapeHTML($F[i])if$F[i]&gt;&quot;&quot;}end;END{puts&quot;&lt;/table&gt;&quot;}' table.txt
&lt;table&gt;
&lt;tr&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;td&gt;1233456&lt;/td&gt;
    &lt;td&gt;abc&lt;/td&gt;
    &lt;td&gt;xyz&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
    &lt;td&gt;abc&lt;/td&gt;
    &lt;td&gt;abcdefgh&lt;br/&gt;xyzabcqw&lt;br/&gt;zzzz&lt;/td&gt;
    &lt;td&gt;1234567&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
    &lt;td&gt;12345&lt;/td&gt;
    &lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;

(Out of contest CW, due to the shameless amount of used command line options.)