




|
Tech Tips14
Use Perl to find out routing difference for comparing OSPF routing rules.
Author: Ben|Date: 2008/08/25|Back to Tech Tips
#!/usr/bin/perl
$route_rule1_ref = analyze_route ("router.txt"); $route_rule2_ref = analyze_route ("router1.txt"); sub analyze_route { my ( $file ) = @_ ; my @router_rules = (); open ( R, "$file" ); $line_count = 0; while ( <R> ) { chomp; $whole_line = ''; if ( /^O.*\s$/ && $line_count == 0 ) { $first_part = $_ ; $line_count++ ; } elsif ( /^\s+?(\[.*)/ && $line_count == 1 ) { $whole_line = $first_part.' '.$1 ; $line_count = 0 ; } elsif ( /^O/ ) { $whole_line = $_ ; } else { $whole_line = '' ; $line_count = 0 ; } push ( @route_rules, $whole_line ) if $whole_line ; } close ( R ); return \@route_rules; } foreach $rule ( @$route_rule1_ref ) { foreach $rule1 ( @$route_rule2_ref ) { last if $rule eq $rule1 ; print "$rule\n" if ( $route_rule2_ref->[-1] eq $rule1 && $rule ne $rule1 ); } } |