微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > perl编程 ,请高手指教

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
......

太简单了吧,
#!/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+ 括起来,多谢

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top