我有兩個文件,並希望從兩個文件中找到匹配的字段1和2,並在字段1和2匹配時從第二個文件打印第三個字段。文件1的樣子:perl腳本找到匹配在兩個文件中的字段
#CHR BP
#1 9690639
#1 7338706
#1 7338707
#1 7338717
文件2的樣子:
#1 10036 rs11928874 CT C 315.21 VQSRTrancheINDEL99.99to100.00AC=3;AF=0.063;AN=48;BaseQRankSum=0.297;DP=1469;FS=16.265;InbreedingCoeff=-0.0941;MLEAC=3;MLEAF=0.063;MQ=14.67;MQ0=0;MQRankSum=1.339
我寫了下面的Perl腳本,它輸出太多的線不符合匹配條件:
my @loci;
open IN, "highalt_results.txt";
while (<IN>) {
my @L = split;
next if m/CHR/;
push @loci, [ $L[0], $L[1] ];
}
close IN;
my $F = shift @ARGV;
open IN, "$F";
while (<IN>) {
my @L = split;
next if m/#CHROM/;
foreach (@loci) {
if ($L[0] = ${$_}[0]) {
if ($L[1] = ${$_}[1]) {
print "${$_}[0] ${$_}[1] $L[2]\n";
next;
}
}
}
}
有人能指出腳本出錯的地方嗎?
可能重複[Perl:匹配兩個文件中的數據](http://stackoverflow.com/questions/30600286/perl-matching-data-in-two-files) – Kaz