简单的列添加

时间:2014-12-04 12:14:10

标签: shell join command

我试图合并使用制表符分隔的txt文件 我尝试了join命令,但无法得到我想要的结果 我把例子放在下面。

File1 :                  File2 :
chr1    100              chr1   200
chr1    200              chr1   300
chr1    300              chr1   400
chr1    400              chr1   500  
chr1    500              chr1   600 

当我尝试时:

join File1 File2 > File3

我得到了:

chr1 100 200
chr1 100 300
chr1 100 400
chr1 100 500
chr1 100 600
chr1 200 200
chr1 200 300
chr1 200 400
chr1 200 500
chr1 200 600
chr1 300 200
chr1 300 300
chr1 300 400
chr1 300 500
chr1 300 600
chr1 400 200
chr1 400 300
chr1 400 400
chr1 400 500
chr1 400 600
chr1 500 200
chr1 500 300
chr1 500 400
chr1 500 500
chr1 500 600

这是我想要的结果:

chr1 100 200
chr1 200 300
chr1 300 400
chr1 400 500
chr1 500 600

2 个答案:

答案 0 :(得分:3)

你也可以提取第二列 File2 并将其粘贴到 File1

$ awk '{print $2}' file2 | paste file1 -
chr1    100 200
chr1    200 300
chr1    300 400
chr1    400 500
chr1    500 600

答案 1 :(得分:0)

你可以使用这个awk:

awk -v OFS='\t' 'FNR==NR{a[$1,FNR]=$0;next} ($1,FNR) in a{print a[$1,FNR], $2}' f1 f2
chr1    100    200
chr1    200    300
chr1    300    400
chr1    400    500
chr1    500    600