OK論壇

 找回密碼
 註冊
查看: 1060|回復: 0

為了比較大量 OSPF 的路由規則,以下的 Perl 程式可以找出路由差異。

 關閉 [複製鏈接]

該用戶從未簽到

發表於 2009-6-6 18:18:44 | 顯示全部樓層 |閱讀模式
#!/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 );
  }
}
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則

Archiver|手機版|小黑屋|OK討論區

GMT+8, 2025-6-24 10:09 PM , Processed in 0.051514 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表