如何使用python或bash合并以下2个文件?

问题描述 投票:0回答:1

第一个文件(制表符分隔)是

1 2 3

b 6 7 8

c 9 0 9

第二个文件(制表符分隔)是

a_rna_1 r r x

a_rna_2 q q d

a_rna_3 c c c

b_rna_1 e e e

c_rna_1 a a g

我们如何合并这两个文件以获得以下文件?

a 1 2 3 a_rna_1 r r x

a 1 2 3 a_rna_2 q q d

a 1 2 3 a_rna_3 c c c

b 6 7 8 b_rna_1 e e e

c 9 0 9 c_rna_1 a a g

有没有办法让我们自动执行此操作?

python linux bash awk sed
1个回答
0
投票

通常,

join
命令可以工作,但您没有完全匹配的字段;一个文件中的
a
与另一个文件中以
a_rna_...
开头的内容匹配。因此,最好的办法可能是断开第二个键与第一个键匹配的部分,并将其作为自己的字段添加到第二个文件中,然后加入。所以 像这样的:

join <(sort file1.tsv) <(sed 's/^\(.\)_/\1\t&/' file2.tsv | sort)
© www.soinside.com 2019 - 2024. All rights reserved.