- 论坛徽章:
- 0
|
我写的,稍微复杂些,仅作参考 :wink:
#! /bin/perl
my $file = "sample.txt";
open( FH, "<$file" ) or die "Open file error: $!\n";
my $cap2_flag = 0;
while ( my $line = <FH> ) {
# start with 'xr' and with 'segr'
if ( $line =~ /^xr.*segr.*/ ) {
$line =~ s/segr\S*//g;
print $line;
next;
}
# start with 'xc' and with 'cpip'
if ( $line =~ /^xc.*cpip.*/ ) {
$line =~ s/cpip\s*(\S)+/cpip/g;
print $line;
next;
}
# start with 'C' and with 'cap2'
if ( $line =~ /^C.*cap2.*/ ) {
$line =~ s/cap2\s+(\S+\s*)/$1\$cap2 /;
print $line;
next;
}
if ( $cap2_flag == 1 ) {
$line =~ s/^(\S+\s*)/$1\$cap2 /;
print $line;
$cap2_flag = 0;
next;
}
# print the lines needn't parse
print $line;
}
close FH;
|
运行结果如下:
- xr1 n1 n2 M=1 w=10u l=0.5u
- xr2 n11 n12 M=1 w=12u l=10.5u
- xr3 n21 n22 M=1 w=210u l=0.5u
- xc1 x1 x2 cpip M=1 W=20u l=2u
- xc1 x1 x2 cpip M=1 W=20u l=2u
- C1 k1 k2 1e-12 $cap2 W=10u L=1u
- C2 k2 k3 2.01p $cap2 W=10u l=40u
复制代码
[ 本帖最后由 climby 于 2009-12-24 12:39 编辑 ] |
|