У меня есть оригинальный файл, который имеет следующие столбцы,
02-May-2018,AAPL,Sell,0.25,1000
02-May-2018,C,Sell,0.25,2000
02-May-2018,JPM,Sell,0.25,3000
02-May-2018,WFC,Sell,0.25,5000
02-May-2018,AAPL,Sell,0.25,7000
02-May-2018,GOOG,Sell,0.25,8000
02-May-2018,GOOG,Sell,0.25,9000
02-May-2018,C,Sell,0.25,2000
02-May-2018,AAPL,Sell,0.25,3000
Я пытаюсь напечатать эту исходную строку, если я вижу значение во втором столбце более чем 2 раза .. например, если я вижуAAPL более чем в 2 раза должен получить желаемый результат:
02-May-2018,AAPL,Sell,0.25,1000
02-May-2018,AAPL,Sell,0.25,7000
02-May-2018,AAPL,Sell,0.25,3000
Итак, я написал следующее, которое печатает результаты несколько раз, что неверно. Не могли бы вы помочь мне в том, что я делаю неправильно?
open (FILE, "<$TMPFILE") or die "Could not open $TMPFILE";
open (OUT, ">$TMPFILE1") or die "Could not open $TMPFILE1";
%count = ();
@symbol = ();
while ($line = <FILE>)
{
chomp $line;
(@data) = split(/,/,$line);
$count{$data[1]}++;
@keys = sort {$count{$a} cmp $count{$b}} keys %count;
for my $key (@keys)
{
if ( $count{$key} > 2 )
{
print "$line\n";
}
}
}