awk file del log for c++

    技术2022-05-20  33

    #! /usr/bin/awk

    BEGIN {    add = 0# addr = 0    line = 1 line1 = 0 line2 = 0 line3 = 0 line4 = 0 line5 = 0 line6 = 0}

    {#  print "line=",line#  print "add =",add  if (add)  {      print "#ifdef DEBUG"      print "    printf(/"enter %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"      print "#endif"      add = 0#   addr = 1   line1 = 0   line2 = 0   line3 = 0   line4 = 0   line5 = 0   line6 = 0#      print "after addlog add= ",add  }

    #  if (( index($0,"return") > 1 && index($0,"return") < 5 && addr == 1))#  {#   addr = 0#       print "#ifdef DEBUG"#    print "    printf(/"leave %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"# print "#endif"#  }

    #  if ( index($0,"}") == 1 && addr == 1)#  {#      addr = 0#        print "#ifdef DEBUG"#        print "    printf(/"leave %s(%d)-%s//n/",__FILE__,__LINE__,__FUNCTION__);"#        print "#endif" #  }

      print $0    if ( index($0,"::") > 0 )  {      line1 = line  }#  print "line1=",line1

      if ( index($0,"(") > 0 )  {      line2 = line  }#  print "line2=",line2

      if ( index($0,"{") == 1 )  {      line3 = line  }  if ( index($0,"}") > 1)  {      line4 = line  }  if ( index($0,"//") > 0)  {      line5 = line  }  if (match($0,/class|enum|struct/) > 0 )  {   line6 = line  }

      if ( index($0,"}") == 1 )  {      line1 = 0   line2 = 0   line3 = 0   line4 = 0   line5 = 0   line6 = 0  }

    #print "line3=",line3   if( (line2 >= line1 && line2 <= line1+5) && line1 > 0 )  {     if( line3 > line2)     {   if( line4 != line3 && line3 != line5 && line3 != line6+1 )   {             add = 1;   }     }  }  line++}

    END{    add = 0    exit 0;}

     

     

     

     

     

     

     

     

     

     


    最新回复(0)