perl编程 ,请高手指教
时间:10-02
整理:3721RD
点击:
用perl编程:
匹配文件timing.rpt中所有包含VIOLATION的行,按数值大小排序后输出匹配到文件temp
timing.rptexample:
Path 1:
VIOLATION -0.33
Path 2:
VIOLATION -0.12
Path3:
VIOLATION -0.15
......
匹配文件timing.rpt中所有包含VIOLATION的行,按数值大小排序后输出匹配到文件temp
timing.rptexample:
Path 1:
VIOLATION -0.33
Path 2:
VIOLATION -0.12
Path3:
VIOLATION -0.15
......
太简单了吧,
#!/usr/bin/perl -w
use strict;
use warnings ;
use Fatal qw/ open close / ;
open my $F1, '<' , 'total_timing.rpt' ;
my @data ; # store all violation items ,
while ( <$F1> ) {
if ( /^\s*VIOLATION\s+\(S+)\s*$/ ){
push @data , $1 ;
}
}
close $F1 ;
open my $F2 ,'>' , 'temp.rpt'
print {$F2}join "\n" ,sort @data ;
close $F2 ;
print {$F2}join "\n" ,sort @data
这句好像不是按大小排列的吧
sort 缺省就是按数字大小排列啊
小编你好,while那个地方笔误了,应该是if(/^\s*VIOLATION\s+(\S+)\s*$/),请小编指正
没错, 是 \S+ 括起来,多谢