объединить или добавить несколько полей из нескольких CSV в один CSV - PullRequest
0 голосов
/ 01 октября 2018

У меня есть эти CSV-файлы. Я хочу создать один CSV, извлекая несколько полей из каждого CSV для определенного фрукта.например, для яблока, выберите 3-е поле из файла 2, выберите 5-е поле из файла 3.Аналогично для других фруктов выберите соответствующие данные (3-е поле из файла 2, 5-е поле из файла 3).

file1

яблоко, 60

апельсин, 40

виноград, 80

банан, 70

личи, 100


file2

апельсин, ab, 2

виноград, о, 4

банан, б, 6

яблоко, а, 8

личи, д, 10


file3 банан,ab, c, d, ef

apple, ab, c, d, ef

litchi, d, e, f, g

orange, d, e, f, г

виноград, д, е, ф, г

выход:

яблоко, 8, д, эф

апельсин, 2, ф,г

виноград, 4, ф, г

банан, 6, д, эф

личи, 10, ф, г

код:

my $File1 = '';
my $File2 = '';
my $File3 = '';
GetOptions ('file=s' => \$File1, 'file=s' => \$file2, 'file=s' => \$File3);
return ($File1,$File2,$File3);
}

sub append {
my ($File1,$File2,$File3) = @_;
my ($File) = @_ ;
open (FH,"<$File") or die ;

while (<FH>) {
chomp ;
my $line = $_ ;
my @arr = split /,/,$line ;
my $temp = "" ;
my $param = $arr[0] ;

$temp = "$arr[0]\n" ;
}
open (FH,"<$File2") or die ;

while (<FH>) {
chomp ;
my $line = $_ ;
my @columns = split/,/, $line ;
my $temp1 = "" ;
my $fruits = "" ;
foreach my $line(@arr){
if ($columns[0] =~ /fruits/) {
my $var2 = $arr[1] ;

$temp1 = "$arr[2]\n" ;
}
open (FH,"<$File3") or die ;
while (<FH>) {
chomp ;
my $line = $_ ;
my @arr = split /,/,$line ;
my $temp2 = "" ;

foreach my $line(@arr){
my $param = "" ;
my $temp = "" ;
my $temp1 = "" ;
if (defined $hashparam{@columns}){
my $var2 = $arr[5] ;
$temp2 = "$arr[5]\n" ;
print FH "$temp,$temp1,$temp2\n";
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...