perl -pe "" filename1 filename2 filename3 ... > catted_file ----- Original Message ----- From: "Javeed SAR" <[EMAIL PROTECTED]> To: "Todd W" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>; "James Kipp" <[EMAIL PROTECTED]> Sent: Thursday, October 24, 2002 1:15 AM Subject: RE: Splitting A large data file
> How to combine it back after split??? > > Regards > j@veed > > > > > > -----Original Message----- > From: Todd W [mailto:trw3@;uakron.edu] > Sent: Thursday, October 24, 2002 10:36 AM > To: [EMAIL PROTECTED]; James Kipp > Subject: Re: Splitting A large data file > > > > James Kipp wrote: > > I am working on a Windows NT box and I don't have the luxury of any file > > splitting utilities. We have a data file with fixed length records. I was > > wondering the most efficient way of splitting the file into 5 smaller > files. > > Thought ( Hoping :-) ) some one out there may have done something like > this. > > > > > > Thanks !! > > #!/usr/bin/perl -w > > use strict; > > # call new() with named args found in init() to override defaults > my( $fSpliter ) = Text::FileSplitter->new(); > > $fSpliter->split(); > > print( "done!\n" ); > > package Text::FileSplitter; > use strict; > use IO::File; > > sub new { > my($class, %args) = @_; > my($self) = bless( { %args }, $class ); > $self->init(); > return( $self ); > } > > sub init { > my($self) = shift(); my($filehandles) = []; > > $self->{ file } ||= './splitfile.txt'; > $self->{ output_prefix } ||= ( ($self->{ file } =~ /(\w+)/) and $1 ); > $self->{ file_count } ||= 5; > $self->{ record_length } ||= 10; > > $self->{ fh } = IO::File->new( "< $self->{ file }" ) > or die("open $self->{ file }: $!"); > > foreach ( 1 .. $self->{ file_count } ) { > push( > @{ $filehandles }, > IO::File->new("> $self->{ output_prefix }.$_") > ); > } > $self->{ ofh } = $filehandles; > > } > > sub split { > my($self) = shift(); my($buffer); > my($counter) = 0; > while ( sysread $self->{ fh }, $buffer, $self->{ record_length } ) { > $self->{ ofh }[ $counter % $self->{ file_count } ]->print( $buffer ); > $counter++; > } > } > > HTH > > Todd W. > > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]