我需要比较两个文件。在第一个文件中,我有一些 ID 对,在第二个文件中,我有以两种样式(每列一个)编写的 ID 列表。它们看起来像这样:
文件 1
IDnew_1 IDnew_2
IDnew_3 IDnew_4
IDnew_5 IDnew_6
IDnew_7 IDnew_8
文件 2
IDnew_1 IDold_1
IDnew_2 IDold_2
IDnew_7 IDold_7
IDnew_8 IDold_8
我想获得这样的输出:
IDold_1 IDold_2
IDold_7 IDold_8
实际上,我需要在文件 2 中的“旧样式 ID”中“翻译”文件 1。我尝试了一些东西perl
,但我无法使用文件 2 中的两列。我的 perl 代码如下所示:
$file_GS = "file1.txt";
$file_orto = "file2.txt";
open (HAN, "< $file_orto") || die "Impossible open input orto";
@r = <HAN>;
close (HAN);
open (GAS, "< $file_GS") || die "Immposible open GS file";
@p = <GAS>;
close (GAS);
for ($i=0; $i<=$#r; $i++){
chomp ($r[$i]);
@orto = split ( /\t/, $r[$i]);
$old = $orto[0];
$new = $orto[1];
for ($l=0; $l<=$#p; $l++){
chomp ($p[$l]);
@v = split (/\t/, $p[$l]);
$gs1 = $v[0];
$gs2 = $v[1];
if ($gs1 eq pf_old){
print "$pb\n";
}
}
}
此代码仅写入一列,输出如下所示:
IDold_1
IDold_7
....我怎样才能让它工作给我两列输出?建议?
谢谢!!