################################################################################ # # Program: middle.pl # Author: Peter R. Schmidt # Description: Cut the middle out of a file # Date: 04/13/95 # ################################################################################ # ENABLE THIS PERL SHRIPT TO RUN AS A SHELL SCRIPT eval 'exec perl -S $0 ${1+"$@"}' if 0; ################################################################################ # WHERE TO FIND PERL FUNCTIONS push (@INC,"/usr/local/src/lib/perl"); # WHERE TO FIND CUSTOM PERL FUNCTIONS push (@INC,"/usr/local/perl4/lib"); # WHERE TO FIND STANDARD PERL FUNCTIONS require "perl_lib1.pl"; require "ctime.pl"; require "flush.pl"; ###################################################################### # MISC SETUP and INITIALIZATION $FALSE = 0; $TRUE = 1; $FIRM = "Peter R. Schmidt"; $STARTTIME = time; ###################################################################### # GET RUN-TIME ARGUMENTS ($FILENAME1,$STARTLINE,$ENDLINE,$FILEOUT1) = @ARGV; ###################################################################### if (!($FILENAME1)) { print "Enter input Filename\n"; chop($FILENAME1 = ); } $FILEOUT = $FILENAME1 . ".out"; if (!($FILEOUT1)) { print "Enter output file name ( for default of $FILEOUT)\n"; chop($FILEOUT1 = ); } if ($FILEOUT1 eq "") { $FILEOUT1 = $FILEOUT; } print "\nOutput filename is: $FILEOUT1\n\n"; if (!($STARTLINE)) { print "Enter starting line number\n"; chop($STARTLINE = ); } if (!($ENDLINE)) { print "Enter ending line number\n"; chop($ENDLINE = ); } ###################################################################### system "cls"; # CLEAR SCREEN $CENSTR = do center($FIRM,80); print "$CENSTR\n"; $CENSTR = do center("Cut the middle out of a file",80); print "$CENSTR\n"; print "\n"; print "Input file is: $FILENAME1\n"; print "Output file1 is: $FILEOUT1\n"; print "Starting line number is: $STARTLINE\n"; print "Ending line number is: $ENDLINE\n"; print "\n"; ###################################################################### # OPEN FILES unless (open (INP_FILE1,"<$FILENAME1")) { die "Can't open input file $FILENAME1\n$!\n"; } unless (open (OUT_FILE1,">$FILEOUT1")) { die "Can't open output file $FILEOUT1\n$!\n"; } ###################################################################### # INITIALIZE $LINENO = 0; $LINEOUT1 = 0; $CNT_100 = 0; ###################################################################### # PROCESS INPUT FILE print "\nWorking...\n\n"; while () { $LINENO++; ############################################################ # DISPLAY RECORD COUNT $CNT_100++; if ($CNT_100 == 100) { $PERCENTAGE = (($LINENO/$ENDLINE)*100); printf STDOUT "$LINENO records in, $LINEOUT1 records out - $f5 (%.1f percent) \r",$PERCENTAGE; &flush(STDOUT); $CNT_100 = 0; } ############################################################ if ( ($LINENO >= $STARTLINE) && ($LINENO <= $ENDLINE) ) { print OUT_FILE1 "$_"; $LINEOUT1++; } if ($LINENO > $ENDLINE) { last }; } ###################################################################### # END OF FILE $ENDTIME = time; $DURATION = do duration($ENDTIME - $STARTTIME); $STARTSTAMP = &ctime($STARTTIME); $ENDSTAMP = &ctime($ENDTIME); chop $STARTSTAMP; chop $ENDSTAMP; print "$LINENO records in, $LINEOUT1 records out \n"; ###################################################################### # CLOSE FILES close INP_FILE1; close OUT_FILE1; print "\n"; print "\n"; print "Program Completed (Duration: $DURATION)\n"; print "\n"; __END__ ################################################################################