我有两个文件,它们有一个冗余的公共列。文件 1 有染色体位置和 TF,文件 2 有染色体位置和 Refseq 编号。
文件 1:
chr1:66997824-67000456 ZNF333
chr1:66997824-67000456 EGR1 chr1
:66997824-67000456 MZF-1
chr22:51221989-51222166 Zic2
chr22:51221989-51222166 ZF5
文件 2:
chr1:66997824-67000456 Refseq#1
chr22:51221989-51222166 Refseq#22
我想合并这两个文件,并创建一个包含三列的新文件,
chr1:66997824-67000456 ZNF333 Refseq#1
chr1:66997824-67000456 EGR1 Refseq#1
chr1:66997824-67000456 MZF-1 Refseq#1
chr22:51221989-51222166 Zic2 Refseq#22
chr22:51221989-51222166 ZF5 Refseq#22
由于染色体位置是多余的,我无法使用 Unix 中的 join 来合并它们 - 有没有办法使用 sed 或 awk 来合并?
答案1
join file1 file2
输出:
chr1:66997824-67000456 ZNF333 引用序列#1 chr1:66997824-67000456 EGR1 引用序列#1 chr1:66997824-67000456 MZF-1 引用序列#1 chr22:51221989-51222166 Zic2 引用序列号#22 chr22:51221989-51222166 ZF5 引用序列号#22
或者
join file1 file2 | awk '{OFS=" ";print $1,$2,$3}'
输出:
chr1:66997824-67000456 ZNF333 引用序列#1 chr1:66997824-67000456 EGR1 引用序列#1 chr1:66997824-67000456 MZF-1 引用序列#1 chr22:51221989-51222166 Zic2 引用序列号#22 chr22:51221989-51222166 ZF5 引用序列号#22