在linux中比较文件1中的第二列和文件2中的第二列

在linux中比较文件1中的第二列和文件2中的第二列

我有两个文件,文件 1 和文件 2。我想假设当染色体编号相同时,如果文件 1 中的第二列大于文件 2 中的(第二列 - 1,000)并小于(第二列) + 1,000) 在文件 2 中,然后输出文件 2 中的第四列和文件 1 中的第三列。

文件 1(3 列):

chr1 12000 1  
chr2 12700 2  
chr2 13000 0.5

文件 2(4 列):

chr1 11869 14409 gene_id=ENSG00000223972  
chr1 11869 14409 gene_id=ENSG00000224000  
chr2 11869 12227 gene_id=ENSG00000300000  
chr2 12613 12721 gene_id=ENSG00000270000  
chr2 13221 14409 gene_id=ENSG00000400000

输出(2 列):

gene_id=ENSG00000223972  1  
gene_id=ENSG00000270000  2  
gene_id=ENSG00000400000  0.5

我试过:

awk 'NR==FNR{a[$1]=$1;next}{if ((a[$2]>$2-1000) && (a[$2]<$2+1000)){print $4, a[$3]}}' file1 file2

但我什么也没得到。

如何在linux下快速得到想要的输出?

相关内容