Script and Comments
Script1
[ 1] /</{
[ 2] :loop
[ 3] s/<[^<]*>//g
[ 4] /</{
[ 5] N
[ 6] b loop
[ 7] }
[ 8] }
Comments
  1. In a well-written HTML file, no '<' and '>'s exist where they are not part of HTML tags.
  2. Each time we found a line contains '<', we first remove all HTML tags of that line. This is done via step [3].
  3. If now the pattern space contains '<', this implies a multi-line tag. We have to repeat the following loop:
    • Join next line (step [5]).
    • Remove all HTML tags (step [6]->[2]->[3])
    until no single '<' exists.
  4. When no '<' exists in the pattern space, we print it out and start a new cycle.
Raw Input
<html><body>
<table 
border=2><tr><td valign=top
align=right>1.</td>
<td>Line 1 Column 2</
td></
tr>
<tr><td valign=top
align=right>2.</td>
<td>Line 2 Column 2</
td></
tr></table>
</body></html>
Desired Output
1.
Line 1 Column 2
2.
Line 2 Column 2