<div dir="ltr"><br><br><div class="gmail_quote">On Thu, Aug 6, 2009 at 9:02 PM, Oleg Goldshmidt <span dir="ltr">&lt;<a href="mailto:pub@goldshmidt.org">pub@goldshmidt.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div><div></div><div class="h5">Erez D &lt;<a href="mailto:erez0001@gmail.com">erez0001@gmail.com</a>&gt; writes:<br>
<br>
&gt; hi<br>
&gt; i have an html file with few different instances of:<br>
&gt; &lt;span class=&quot;myclass&quot;&gt;<br>
&gt; ... some html, e.g. &lt;B&gt; blah blah &lt;a href=....&gt; &lt;/a&gt; &lt;/b&gt;<br>
&gt; &lt;/span&gt;<br>
&gt; i want to remove theses instances.<br>
&gt; ( the html inside the &lt;span&gt; varies between instances, and there is a non<br>
&gt; constant number of instances)<br>
&gt; i thought of replacing &#39;&lt;[^/]&#39; (i.e. &#39;&lt;&#39; folowed by somthing else then &#39;/&#39; )<br>
&gt; with &#39;{&#39; and &#39;&lt;/&#39; with &#39;}&#39; and then doing parenthesis matching<br>
&gt; however i need it done automatically in batch. (i can do parenthesis matching<br>
&gt; in vi. can i do this in sed ?)<br>
<br>
</div></div>Sed is line-oriented which will make it a bit difficult.<br>
<br>
If I understand you correctly, and you want to remove everything<br>
between &quot;&lt;span&quot; and &quot;span&gt;&quot; including the span tags themselves, *and*<br>
the file does not contain the span tags in comments or string literals<br>
or anything like that, *and* &quot;&lt;span&quot; always has a matching &quot;span&gt;&quot;,<br>
then one way to do it would be<br>
<br>
$ awk &#39;BEGIN {RS=&quot;(&lt;span|span&gt;)&quot;} NR%2==1&#39; &lt;filename&gt;<br>
<br>
which will consider either &quot;&lt;span&quot; or &quot;span&gt;&quot; as a record separator<br>
and will print only the odd records (everything between &quot;&lt;span&quot; and<br>
&quot;span&gt;&quot; will be even records and will be skipped).<br>
<br>
All you need to know about awk is that it splits the input into<br>
records, RS is the record separator (set to a regexp in the<br>
beginning), and NR is the number of the current record. It prints the<br>
records matching the &quot;odd NR&quot; condition.<br>
<br>
Does this do what you want?<br>
<font color="#888888"></font></blockquote><div>the problem is that between &lt;span class=&quot;myclass&quot;...&gt; and its &lt;/span&gt; there may be other &lt;span class=&quot;otherclass&quot;...&gt; and its &lt;/span&gt; <br>
<br>that is why i wanted parenthesis matching...<br><br><br>thanks,<br>erez<br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><font color="#888888"><br>

--<br>
Oleg Goldshmidt | <a href="mailto:pub@goldshmidt.org">pub@goldshmidt.org</a><br>
</font></blockquote></div><br></div>