这里我想删除与之匹配的行
<li><p><a href="anti\/recent.html">
第四次出现
我之前问过,但有点不同,那时我只需要与<ul>
匹配
那时我得到答案:
awk '/<ul>/ {ul++} ul == 6 { getline } 1' file
但是,这不能应用于<li><p><a href="anti\/recent.html">
在另一篇文章中我得到了另一个答案:
awk '/<li><p><a href="anti\/recent.html">/ {a++} a == 4 { getline } 1' file
awk似乎有一些bug
^I^I^I^I^I^I^I^I^I<li><p><a href="anti/recent.html">4 Jul 2011 - Fraudulent email purporting to be related to Standard Chartered Bank (Hong Kong) Limited</a></p></li>$
<!--<li>There is no phishing attack at this moment.</li>-->$
^I^I^I^I^I^I^I^I </ul>$
例如它会删除</ul>
,尽管它位于不同的行上?
它以某种方式工作,因为它删除了第四个项目,但之后它删除了这么多行(~40行)(这与<li><p><a href="anti\/recent.html">
完全无关。原因是什么?谢谢
答案 0 :(得分:1)
awk '/<li><p><a href="anti\/recent.html">/ {a++} a == 4 { getline } 1' file
当“a”等于4时,即使它们与模式不匹配,也会删除任何行。你必须结合(“和”)条件:
awk '/<li><p><a href="anti\/recent.html">/ && ++a == 4 {next} 1' file