我需要比較兩個文件。在第一個文件中,我有一些ID對,在第二個文件中,我有用兩種樣式(每列一個)編寫的ID列表。他們是這樣的:比較文件和只寫匹配模式,perl或awk?
文件1
文件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
Pratically我需要「翻譯」文件1「中的舊式ID在文件二中。 我試過的東西在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
....我怎樣才能使它的工作給我輸出兩列? 建議?
謝謝!
請向我們展示您的Perl代碼。輸出中有 – simbabque
沒有來自file1的數據? –
@mpapec在輸出中我有ID相當於文件1中的ID(舊ID中的新ID「翻譯」)。 – Gabelins