ITPub博客

首页 > 应用开发 > IT综合 > 用perl按记录条件分割大文件

用perl按记录条件分割大文件

原创 IT综合 作者:jetgm 时间:2019-04-19 16:57:08 0 删除 编辑

《intermediate perl》一书中第8章练习2是一个分割文件的练习

Gilligan: 1 coconut
Skipper: 3 coconuts
Gilligan: 1 banana
Ginger: 2 papayas
Professor: 3 coconuts
MaryAnn: 2 papayas
.......

要求按照:前的字符将原始文件分割成若干个*.info文件

可以有2种方法解决

1、

#!/usr/local/bin/perl
use strict;
use warnings;

use IO::File;
my %output_handles;
while (<>) {
unless (/^(S+):/) {
warn "ignoring the line with missing name: $_";
next;
}
my $name = lc $1;
my $handle = $output_handles{$name} ||=
my $fh =IO::File->new(">$name.info")|| die "Cannot create $name.info: $!";
#print "$. $fhn" ;
#print "$. $handlen" ;
print $handle $_;
}

2.

#!/usr/local/bin/perl
use strict;
use warnings;

use IO::File;
my %output_handles;
while (<>) {
unless (/^(S+):/) {
warn "ignoring the line with missing name: $_";
next;
}
my $name = lc $1;
# my $handle = $output_handles{$name} ||=
my $fh =IO::File->new(">>$name.info")|| die "Cannot create $name.info: $!";
#print "$. $fhn" ;
#print "$. $handlen" ;
print $fh $_;
}

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/6456/viewspace-1005306/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-02-06

  • 博文量
    24
  • 访问量
    18370