0

我有两个制表符分隔值文件,比如说

File1.txt

chr1    894573  rs13303010  GG
chr2    18674   rs10195681  **CC**
chr3    104972  rs990284    AA  <--- Unique Line
chr4    111487  rs17802159  AA
chr5    200868  rs4956994   **GG**
chr5    303686  rs6896163   AA  <--- Unique Line
chrX    331033  rs4606239   TT
chrY    2893277 i4000106    **GG**
chrY    2897433 rs9786543   GG
chrM    57  i3002191    **TT**


File2.txt

chr1    894573  rs13303010  GG
chr2    18674   rs10195681  AT
chr4    111487  rs17802159  AA
chr5    200868  rs4956994   CC
chrX    331033  rs4606239   TT
chrY    2893277 i4000106    GA
chrY    2897433 rs9786543   GG
chrM    57  i3002191    TA

期望的输出:

Output.txt

chr1    894573  rs13303010  GG
chr2    18674   rs10195681  AT
chr3    104972  rs990284    AA  <--Unique Line from File1.txt
chr4    111487  rs17802159  AA
chr5    200868  rs4956994   CC
chr5    303686  rs6896163   AA  <--Unique Line from File1.txt
chrX    331033  rs4606239   TT
chrY    2893277 i4000106    GA
chrY    2897433 rs9786543   GG
chrM    57  i3002191    TA

File1.txt 共有 10 个条目,而 File2.txt 有 8 个条目。我想比较使用第 1 列和第 2 列的文件。

如果文件的前两列值相同,则应将 File2.txt 中的对应行打印到 Output.txt。

当 File1.txt 具有唯一组合(Column1:column2,File2.txt 中不存在)时,它应该将 File1.txt 中的相应行打印到 Output.txt。

我尝试了网站上提供的各种 awk 和 perl 组合,但无法得到正确答案。任何建议都会有所帮助。

谢谢,阿米特

4

1 回答 1

0

下次,尝试显示您的 awk 代码,以便我们可以帮助解决错误或丢失对象

awk 'NR==FNR || (NR>=FNR&&($1","$2 in k)){k[$1,$2]=$0}END{for(K in k)print k[K]}' file1 file2
于 2015-12-08T11:00:47.787 回答