天天看點

Linux/shell: remove adjacent similar patterns

cat > temp004

AA1

a

b

c

AA2

AA3

AA4

AA5

AA6

awk '

BEGIN {pre=0; str="";}

{ if(NR==1){

     if($0 ~ /AA/)

      {pre=1;}

     else {pre=0;}

     str=$0;

      }

 else {  

   if($0 ~ /AA/)

     {curr=1; }

   else {curr=0;}

   if( curr == 1 && pre == 1)

   { ;}

   else

   { print str; }

   str=$0;

   pre=curr;

   }

} END{ print str;}' temp004