#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
use Text::CSV;
my $csv = Text::CSV->new({ binary => 1, auto_diag => 1, sep_char => ','});
my (%hash, %newhash, @fields, $keys_one, $name, $keys_two, $line);
open(my $data, '<:encoding(utf8)', "us_db_csv.csv");
while ($line = $csv->getline($data))
{
chomp $line;
if ($line)
{
@fields = @$line;
# next if ($fields[0] < 40);
$hash{$fields[0]} = [@fields];
}
# last if ($fields[0] > 60);
}
foreach $keys_one (sort {$a <=> $b} keys %hash)
{
#$name=${$hash{$keys_one}}[1];
foreach $keys_two (sort {$a <=> $b} keys %hash)
{
next if (($keys_two <= $keys_one) or (! ${$hash{$keys_one}}[1]));
if ("${$hash{$keys_one}}[1]" eq "${$hash{$keys_two}}[1]")
{
$newhash{$keys_two}= $hash{$keys_two};
delete $hash{$keys_two};
}
}
}
close(USDB);
open (USDB, '>us_db_org.csv');
foreach $keys_one (sort {$a <=> $b} keys %hash)
{
last;
next if (! @{$hash{$keys_one}}[1]);
print USDB join("\t", @{$hash{$keys_one}}),"\n";
}
close(USDB);
$csv->eol("\r\n");
close $data;
open $data, ">:encoding(utf8)", "org.csv";
foreach $keys_one (sort {$a <=> $b} keys %hash)
{
next if (! @{$hash{$keys_one}}[1]);
$csv->print($data, $hash{$keys_one});
}
close $data;
$csv->eol("\r\n");
open $data, ">:encoding(utf8)", "dup.csv";
foreach $keys_two (sort {$a <=> $b} keys %newhash)
{
next if (! @{$newhash{$keys_two}}[1]);
$csv->print($data, $newhash{$keys_two});
}
close $data;
$csv->eol("\r\n");
1;
use strict;
use warnings;
use Data::Dumper;
use Text::CSV;
my $csv = Text::CSV->new({ binary => 1, auto_diag => 1, sep_char => ','});
my (%hash, %newhash, @fields, $keys_one, $name, $keys_two, $line);
open(my $data, '<:encoding(utf8)', "us_db_csv.csv");
while ($line = $csv->getline($data))
{
chomp $line;
if ($line)
{
@fields = @$line;
# next if ($fields[0] < 40);
$hash{$fields[0]} = [@fields];
}
# last if ($fields[0] > 60);
}
foreach $keys_one (sort {$a <=> $b} keys %hash)
{
#$name=${$hash{$keys_one}}[1];
foreach $keys_two (sort {$a <=> $b} keys %hash)
{
next if (($keys_two <= $keys_one) or (! ${$hash{$keys_one}}[1]));
if ("${$hash{$keys_one}}[1]" eq "${$hash{$keys_two}}[1]")
{
$newhash{$keys_two}= $hash{$keys_two};
delete $hash{$keys_two};
}
}
}
close(USDB);
open (USDB, '>us_db_org.csv');
foreach $keys_one (sort {$a <=> $b} keys %hash)
{
last;
next if (! @{$hash{$keys_one}}[1]);
print USDB join("\t", @{$hash{$keys_one}}),"\n";
}
close(USDB);
$csv->eol("\r\n");
close $data;
open $data, ">:encoding(utf8)", "org.csv";
foreach $keys_one (sort {$a <=> $b} keys %hash)
{
next if (! @{$hash{$keys_one}}[1]);
$csv->print($data, $hash{$keys_one});
}
close $data;
$csv->eol("\r\n");
open $data, ">:encoding(utf8)", "dup.csv";
foreach $keys_two (sort {$a <=> $b} keys %newhash)
{
next if (! @{$newhash{$keys_two}}[1]);
$csv->print($data, $newhash{$keys_two});
}
close $data;
$csv->eol("\r\n");
1;
No comments:
Post a Comment