idy has asked for the wisdom of the Perl Monks concerning the following question:
The sample input file which has lines like as follows#!/usr/local/bin/perl -w my $filein = ""; $filein = $ARGV[0]; #print "$filein"; #$fileout = ""; #$fileout = $ARGV[1]; $argcnt = $#ARGV + 1; if ($argcnt != 1) { print "usage: perl extract.pl input_file\n"; } else { print "I am here !!!"; print "$filein"; open(MYINPUTFILE, "$filein") || die ("could not open file"); #open(MYOUTPUTFILE, ">$fileout"); @data = <MYINPUTFILE>; close(MYINPUTFILE); #while(<MYINPUTFILE>) foreach $line (@data) { # my($line) = $_; chomp($line); print "check1"; if ( $line =~ m/^.*\|.*(\|.*\|).*(\|.*\|.*\|.*\|).*(\|.*\|).*\|.*\|.* +\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\|.*\ +$/ ) { #my($zip,$name,$mm,$dd,$yy) = ($1,$2,$3,$4,$5); print "check2"; $var1 = $1; $var2 = $2; $var3 = $3; #my($first, $last) = split(/ /, $name); # $line = sprintf("%-16s%-10s%02d/%02d/%04d%5d", # $last,$first,$mm,$dd,$yy,$zip); print $var1.$var2.$var3 #print MYOUTPUTFILE "$line\n"; } } } print "check4"; #close(MYINPUTFILE); #close(MYOUTPUTFILE);
OR|xxxxx61|xxxxxxx|xxxxxxx|-|xxxxx|-|xx|xxxxx|xx|-|xxxx|BEAVERTON|OR|x +xxx|TN[xxxxxxx]|x|x|HASxxxxxxxx|x|xxxxxxxxx|xxxxxxxx|xxxxxxx|1|Vxxxx| +4xxxxxxx|-|ALOHORxxxxxxxxxx
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Parsing delimited file contents
by gmargo (Hermit) on Nov 02, 2009 at 18:14 UTC | |
|
Re: Parsing delimited file contents
by CountZero (Bishop) on Nov 02, 2009 at 20:33 UTC | |
|
Re: Parsing delimited file contents
by zentara (Cardinal) on Nov 02, 2009 at 16:51 UTC | |
|
Re: Parsing delimited file contents
by toolic (Bishop) on Nov 02, 2009 at 17:03 UTC | |
|
Re: Parsing delimited file contents
by mikelieman (Friar) on Nov 02, 2009 at 17:12 UTC |