【发布时间】:2023-04-08 13:47:01
【问题描述】:
我是 Perl 的初学者,我想合并两个文本文件的内容。 我在这个论坛上阅读了一些类似的问题和答案,但我仍然无法解决我的问题 第一个文件具有每个人的原始 ID 和重新编码的 ID(在第一列和第四列中) 第二个文件包含重新编码的 ID 和一些个人的一些信息(在第一列和第二列中)。 我想用这些人的原始、重新编码和信息创建一个输出文件。 这是我到目前为止创建的 perl 脚本,它不起作用。 如果有人可以提供帮助,将不胜感激。
use warnings;
use strict;
use diagnostics;
use vars qw( @fields1 $recoded $original $IDF @fields2);
my %columns1;
open (FILE1, "<file1.txt") || die "$!\n Couldn't open file1.txt\n";
while ($_ = <FILE1>)
{
chomp;
@fields1=split /\s+/, $_;
my $recoded = $fields1[0];
my $original = $fields1[3];
my %columns1 = (
$recoded => $original
);
};
open (FILE2, "<file2.txt") || die "$!\n Couldnt open file2.txt \n";
for ($_ = <FILE2>)
{
chomp;
@fields2=split /\s+/, $_;
my $IDF= $fields2[0];
my $F=$fields2[1];
my %columns2 = (
$F => $IDF
);
};
close FILE1;
close FILE2;
open (FILE3, ">output.txt") ||die "output problem\n";
for (keys %columns1) {
if (exists ($columns2{$_}){
print FILE3 "$_ $columns1{$_}\n"
};
}
close FILE3;
【问题讨论】: