Я новичок в Perl, и это мой первый вопрос в этом блоге, надеюсь, будет решен.Слияние нескольких текстовых файлов на основе одного столбца в perl
У меня есть некоторые текстовые (10-18) файлы в папке, я хочу прочитать все файлы и объединить все файлы, которые имеют общие переменные в столбце Имена вместе со своим столбцом «Область» для всех файлов. Например: файл 1.txt
Имя сим Площадь Cas
аа 12 54 222
AB 23 2 343
ааа 32 34 34
BBA 54 76 65
файл 2.txt
Имя Сим Площадь Cas
AB 45 45 56
аЬс 76 87 98
BBA 54 87 87
ааа 33 43 54
файл 3.txt
Имя Сим Площадь Cas
ааа 43 54 65
AB 544 76 87
переменного тока 54 65 76
Выход должен быть
Наименование Площадь1 Площадь2 Площадь3
aaa 32 43 54
ab 23 45 76
Может кто-нибудь помочь в этом. Я очень новичок в Perl и изо всех сил пытаюсь использовать хеши.
Я попытался это до сих пор
use strict;
use warnings;
my $input_dir = 'C:/Users/Desktop/mr/';
my $output_dir = 'C:/Users/Desktop/test_output/';
opendir SD, $input_dir || die 'cannot open the input directory $!';
my @files_list = readdir(SD);
closedir(SD);
foreach my $each_file(@files_list)
{
if ($each_file!~/^\./)
{
#print "$each_file\n"; exit;
open (IN, $input_dir.$each_file) || die 'cannot open the inputfile $!';
open (OUT, ">$output_dir$each_file") || die 'cannot open the outputfile $!';
print OUT "Name\tArea\n";
my %hash; my %area; my %remaning_data;
while(my $line=<IN>){
chomp $line;
my @line_split=split(/\t/,$line);
# print $_,"\n" foreach(@line_split);
my $name=$line_split[0];
my $area=$line_split[1];
}
}
}
Может кто-нибудь дать указания о том, как выполнить это? Спасибо заранее.
Это работает отлично спасибо очень жаль последнего ответа –