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"; } }
In reply to appending values based on criteria by logeshwaran
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |