比较两个文件中的 4 列;并输出唯一组合的行(来自第一个文件)和重复组合的行(来自第二个文件)
Compare 4 columns in two files; and output the line for unique combination (from first file) and line for duplicate combination (from second file)
我有两个制表符分隔值文件,比方说
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 组合,但无法获得正确答案。
任何建议都会有所帮助。
谢谢,
阿米特
下次,请展示您的 awk 代码,这样我们可以帮助解决错误或丢失的对象
awk 'NR==FNR || (NR>=FNR&&("," in k)){k[,]=[=10=]}END{for(K in k)print k[K]}' file1 file2
我有两个制表符分隔值文件,比方说
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 组合,但无法获得正确答案。 任何建议都会有所帮助。
谢谢, 阿米特
下次,请展示您的 awk 代码,这样我们可以帮助解决错误或丢失的对象
awk 'NR==FNR || (NR>=FNR&&("," in k)){k[,]=[=10=]}END{for(K in k)print k[K]}' file1 file2