Date: Sat, 8 Dec 2012 00:58:09 -0500
From: [email protected]
To: [email protected]
CC: [email protected]
Subject: Re: vimdiff: how to calculate "delta" for digits in different lines?


  
    
  
  
    On 12/8/2012 12:20 AM, Roy Fulbright wrote:

    > > Date: Fri, 7 Dec 2012
      23:50:17 -0500

      > > From: [email protected]

      > > To: [email protected]

      > > Subject: vimdiff: how to ignore all same lines and show
      ONLY diff lines?

      > >

      > > exports:

      > > by default vimdiff will not only show the diff lines,
      but also show a

      > > couple of same lines to give you a sense of context.

      > > how to suppress all same lines and display only those
      diff lines?

      > >

      > > regards

      > > ping

      > >

      > > --

      > > You received this message from the "vim_use" maillist.

      > > Do not top-post! Type your reply below the text you are
      replying to.

      > > For more information, visit
      http://www.vim.org/maillist.php

      >

      > Add the following line to .vimrc:

      > set diffopt=filler,context:0

      > 

      > -- 

      > You received this message from the "vim_use" maillist.

      > Do not top-post! Type your reply below the text you are
      replying to.

      > For more information, visit http://www.vim.org/maillist.php

    

    

    thanks Roy (and Tony), that really works!

    

    now I still feel that is a big weak comparing to what I wanted
    achieve:

    

    say I have these 2 captures from the devices:

    

      Multicast routing enabled               Multicast routing
    enabled                                                    

      Use Framed Routes = disabled                    Use Framed Routes
    = disabled                                                 

    

      In Received Packets 10, Bytes 1000              In Received
    Packets 15, Bytes 150                                            

        Unicast Packets 10, Bytes 1000                  Unicast Packets
    15, Bytes 150                                              

        Multicast Packets 0, Bytes 0                    Multicast
    Packets 1, Bytes 54                                              

      In Policed Packets 0, Bytes 0                   In Policed Packets
    0, Bytes 0                                                

      In Error Packets 0                              In Error Packets
    0                                                           

      In Invalid Source Address Packets 0             In Invalid Source
    Address Packets 0                                          

      In Discarded Packets 0                          In Discarded
    Packets 0                                                       

      Out Forwarded Packets 100, Bytes 10000          Out Forwarded
    Packets 150, Bytes 15000                                       

        Unicast Packets 100, Bytes 10000                Unicast Packets
    150, Bytes 15000                                           

        Multicast Routed Packets 0, Bytes 0             Multicast Routed
    Packets 0, Bytes 0                                        

      Out Scheduler Dropped Packets 0, Bytes 0        Out Scheduler
    Dropped Packets 0, Bytes 0                                     

      Out Policed Packets 0, Bytes 0                  Out Policed
    Packets 0, Bytes 0                                               

      Out Discarded Packets 0                         Out Discarded
    Packets 0                                                      

    

    

    

    with above solution now I can focus on lines with an increased
    counter(s).

    But quite often I need to manually calculate the "delta" amount of
    those counters. 

    so instead of just mark the diff lines, ideally if I can have the
    2nd diff window displaying only the delta of those counters whenever
    there is any difference

    

    29   In Received Packets 10, Bytes 1000          29   In Received
    Packets 5, Bytes 500          

    30     Unicast Packets 10, Bytes 1000                   30    
    Unicast Packets 5, Bytes 500            

    31     Multicast Packets 0, Bytes 0                     31    
    Multicast Packets 1, Bytes 54           

    32 +--  4 lines: In Policed Packets 0, Bytes 0          32 +--  4
    lines: In Policed Packets 0, Bytes 0 

    36   Out Forwarded Packets 100, Bytes 10000             36   Out
    Forwarded Packets 50, Bytes 5000      

    37     Unicast Packets 100, Bytes 10000                 37    
    Unicast Packets 50, Bytes 5000          

    

    I don't find existing functions/scripts (say script 3745 or 3075)
    can do that for me,

    is that possible  The easiest way I found to calculate and display the 
delta of lines that differ is to write a short Perl program: #!/usr/bin/perl
use strict;
use warnings;my $file1 = "diff1.txt";
my $file2 = "diff2.txt";
open(my $fh1,'<', $file1) or die "Error opening $file1: $!\n";
open(my $fh2,'<', $file2) or die "Error opening $file2: $!\n";
while ( !eof($fh1) && !eof($fh2) ) {
    my $t1 = <$fh1>;
    my $t2 = <$fh2>;
    chomp $t1;
    chomp $t2;
    if ($t1 ne $t2) {
        my ($p1,$b1) = $t1 =~ /(\d+).*?(\d+)/;
        my ($p2,$b2) = $t2 =~ /(\d+).*?(\d+)/;
        my $pdelta = $p2 - $p1;
        my $bdelta = $b2 - $b1;
        print pack("A42",$t1), pack("A42",$t2), "$pdelta  $bdelta\n";
    }
}

                                          

-- 
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Reply via email to