# !/user/bin/perl use strict; use file :: basename use file :: copy #command line arguments my #input1=$ARGV[0] my #string; # array to store extracted dields my @records; my @fieldvalues; # assign paths for output files my $destinationapth="D/perl/output/"; my $destination="$destinationpath."OutputFile.txt"; my $destination1="$destinationpath."Error.txt"; open(IN, ">$destination"); opne(IN_Err,">$destination1"); open(DATA1,"<$input1"); my $a=0; while() { $String="."; $String=$_; @records=Split(/\n/,$String); foreach $fieldvalues(@records) { @fieldvalues=split(/,/,$String); #to split columns from each row in csv file foreach my $element(@fieldvalues) { # to remove linebreaks & whitespaces $element= ~s/\r|\n//g; } # Deleting values not needed in output if ($fieldvalues[0] eq '1111' || $fieldvalues[0] eq '2222' || $fieldvalues[0] eq '0000') { #do nothing } else { #checking COL A for 2323 & column O except than AA if($fieldvalues[0] eq '2323' && $fieldvalues[14] ne 'AA') { #move to err file PRINT IN_Err ("@records\n"); } #replace "+/=" with " "(space) in col D $ fieldvalues[3] = ~s/[+=]/ /g; #replacing Col A values if($fieldvalues[0] eq '1212') { $fieldvalues[0] ='a'; } if($fieldvalues[0] eq '2121') { $fieldvalues[0] ='aa'; } if($fieldvalues[0] eq '3131') { $fieldvalues[0] ='ba'; } } # if for specific COL A values, column D contains specific text, replacing column G value if ($fieldvalues[0] eq '9898' || $fieldvalues[0] eq '6767' || $fieldvalues[0] eq '5656') { if(index($fieldvalues[3], '09 09')!==-1) { $fieldvalues[6]='AA; } #printing in formatted file print IN ("@records\n"); } } } Close (DATA);