--- abcd10 ---
--- abcd31 ---
--- abcd32 ---
MY Addr info name policy
---------------------------------------------------------
00:0a:91:00:65:93 HQLT DKAHN Default
--- abcd33 ---
No info found
--- abcd34 ---
No info found
--- abcd35 ---
MY Addr info name policy
---------------------------------------------------------
00-0a-91-00:15:03 HQ-LT-DKAHN Default
00-0a-91-10:15:03 HQ-LT-DKAHN Default
在上面的文件我想只提取特定的格式。
--- abcd32 ---
MY Addr info name policy
---------------------------------------------------------
00:0a:91:00:65:93 HQLT DKAHN Default
而且
--- abcd35 ---
MY Addr info name policy
---------------------------------------------------------
00-0a-91-00:15:03 HQ-LT-DKAHN Default
00-0a-91-10:15:03 HQ-LT-DKAHN Default
代码:
#!/usr/bin/perl
use warnings;
use strict;
my $file;
my $start_marker_mqstats = qr{^\-+\s*\w+\s*\-+.* $}x;
my $end_marker_mqstats = qr{^\s* $}x;
open($file,"<", "file") || die $!;
while(<$file>) {
if ($_ =~/^\-\-\-\s\w+\s\-\-\-/){
if ($_ =~/^MY\sAddr.*/){
next unless my $range = /$start_marker_mqstats/ .. /$end_marker_mqstats/;
my $line = $_;
print $line if $range !~ /^1$|E/;
}
}
}
#!/ usr/bin/perl 使用警告; 使用严格; my $ file; my $ start_marker_mqstats = qr {^ \ - + \ s * \ w + \ s * \ - +。* $} x; my $ end_marker_mqstats = qr {^ \ s * $} x; open($ file,“<”,“file”)||死! ($ _ =〜/^\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \){ while(<$file>){if _ /){ next除非我的$ range =/$ start_marker_mqstats/../$ end_marker_mqstats /; my $ line = $ _; print $ line if $ range!〜/^1 $ | E /; } } } – 2014-11-06 09:58:44
我上面的代码不起作用 – 2014-11-06 09:59:25
我想打印/提取如下。 --- abcd32 --- MY地址信息名称政策 --------------------------------- -------------- 00:0a:91:00:65:93 HQLT DKAHN默认 - abcd35 --- MY地址信息名称政策 ------ -------------------------------------------------- -------------------- 00-0a-91-00:15:03 HQ-LT-DKAHN默认00-0a-91-10:15:03 HQ -LT-DKAHN默认 – 2014-11-06 10:31:06