#/usr/bin/perl -w #This script takes a main file and separates into individual bills by splitting at the header line. # [-v|--verbose] # [-d|--dest splitdir] filename # use Getopt::Long; GetOptions("verbose" => \$verbose, "dest:s" => \$destdir); if (length $destdir == 0) { $split_file_prefix = $ARGV[0]; } else { $split_file_prefix = $destdir."/".`basename $ARGV[0]`; chomp($split_file_prefix); } ## open file name passed in as arg 1 for reading open(MAIN_BATCH_FILE, "<$ARGV[0]") or die "Couldn't open file : $ARGV[0] \n Message : $!"; $first_line = ; $counter = 1; $filename = $split_file_prefix."-SPLIT-".$counter.".txt"; if ($verbose) { print "$filename\n"; } open(NEW_FILE,">".$filename); print NEW_FILE $first_line; while () { if ($_ =~ /^1010100/) { close(NEW_FILE); $counter++; $filename = $split_file_prefix."-SPLIT-".$counter.".txt"; if ($verbose) { print "$filename\n"; } open(NEW_FILE,">".$filename); } print NEW_FILE "$_"; } close(NEW_FILE); exit 0;