logeshwaran has asked for the wisdom of the Perl Monks concerning the following question:
Input:
id|Name|app1|app2
1|abc|234|231|
2|xyz|123|215|
1|abc|265|321|
3|asd|213|235|
In the above input if id gets repeated I am appending app1,app2 . And printing it once . My expected output as follows,
Output:
id|Name|app1|app2
1|abc|234,265|231,321|
2|xyz|123|215|
3|asd|213|235|
My Code: #! usr/bin/perl use strict; use warnings; my $basedir = 'E:\Perl\Input\\'; my $file ='doctor.txt'; my $counter = 0; my %RepeatNumber; my $pos=0; open(OUTFILE, '>', 'E:\Perl\Output\DoctorOpFile.csv') || die $!; open(FH, '<', join('', $basedir, $file)) || die $!; my $line = readline(FH); unless ($counter) { chomp $line; print OUTFILE $line; print OUTFILE "\n"; } while ($line = readline(FH)) { chomp $line; my @obj = split('\|',$line); if($RepeatNumber{$obj[0]}++) { my $str1= join("|",$obj[0]); my $str2=join(",",$obj[2],$obj[3]); print OUTFILE join("|",$str1,$str2); print OUTFILE "\n"; } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: appending values based on criteria
by toolic (Bishop) on Sep 04, 2015 at 12:58 UTC | |
|
Re: appending values based on criteria
by GotToBTru (Prior) on Sep 04, 2015 at 13:03 UTC | |
|
Re: appending values based on criteria
by Preceptor (Deacon) on Sep 04, 2015 at 14:34 UTC | |
|
Re: appending values based on criteria
by stevieb (Canon) on Sep 04, 2015 at 13:06 UTC | |
|
Re: appending values based on criteria
by Anonymous Monk on Sep 04, 2015 at 20:11 UTC |