根据它们的第一列,我有两个要加入的文件。
它们已排序,并非 FILE1 第一列中的所有值都在 FILE2 中,反之亦然。
FILE1.TXT 看起来像这样,除了它大约 15k 行:
snRNA:7SK 1037
snRNA:U11 144
snRNA:U1:21D 348.293
snRNA:U12:73B 16
snRNA:U1:82Eb 2.14286
snRNA:U1:95Ca 348.293
snRNA:U1:95Cb 351.96
snRNA:U1:95Cc 35.5095
snRNA:U2:14B 447.35
snRNA:U2:34ABa 459.75
snRNA:U2:34ABb 513.25
snRNA:U2:34ABc 509
snRNA:U2:38ABa 443.65
snRNA:U4:38AB 155
snRNA:U4:39B 611.833
snRNA:U4atac:82E 152.5
snRNA:U5:14B 1
snRNA:U5:23D 2.5
snRNA:U5:34A 11
snRNA:U5:38ABb 2.5
snRNA:U5:63BC 44
snRNA:U6:96Aa 18
snRNA:U6:96Ab 9.5
snRNA:U6:96Ac 8.5
snRNA:U7 4
snRNA:U8 8
FILE2.TXT 看起来像这样,也是 ~15K 行:
snRNA:7SK 1259
snRNA:U11 33
snRNA:U1:21D 1480.57
snRNA:U12:73B 4
snRNA:U1:82Eb 10.2
snRNA:U1:95Ca 1480.57
snRNA:U1:95Cb 1484.03
snRNA:U1:95Cc 114.633
snRNA:U2:14B 4678.89
snRNA:U2:34ABa 4789.93
snRNA:U2:34ABb 5292.22
snRNA:U2:34ABc 5273.23
snRNA:U2:38ABa 4557.88
snRNA:U2:38ABb 3.75
snRNA:U4:38AB 405
snRNA:U4:39B 1503.5
snRNA:U4atac:82E 548
snRNA:U5:14B 25
snRNA:U5:23D 19
snRNA:U5:34A 32
snRNA:U5:38ABb 4
snRNA:U5:63BC 742
snRNA:U6:96Aa 39.5
snRNA:U6:96Ab 1
snRNA:U6:96Ac 1
snRNA:U7 11
如您所见,FILE2 中的一个元素 (snRNA:U5:38ABb) 在 FILE1 中丢失,而 FILE1 中的一个元素在 FILE2 中丢失。在整个文件中都是这种情况,无论是双向还是多次。
我正在编写如下命令:
join -a1 -a2 -e "0" -1 1 -2 1 -o '0,1.2,2.2' -t ' '
FILE1.TXT FILE2.TXT
>JOIN_FILE.TXT
如果我仅使用从每个文件中粘贴的 20 行左右的行来尝试该命令,它就可以正常工作。
但是当我在整个文件上运行它时,输出很糟糕,我不明白为什么。两个文件都使用 排序sort -k1,1
,因此即使 1 中的某些行不在 2 中,反之亦然,它们的顺序相同。
我得到的是一个项目的重复条目,例如:(再次,我只显示输出文件的一小部分......)
snRNA:7SK 0 1037
snRNA:U11 0 144
snRNA:U1:21D 0 348.293
snRNA:U12:73B 0 16
snRNA:U1:82Eb 0 2.14286
snRNA:U1:95Ca 0 348.293
snRNA:U1:95Cb 0 351.96
snRNA:U1:95Cc 0 35.5095
snRNA:U2:14B 0 447.35
snRNA:U2:34ABa 0 459.75
snRNA:U2:34ABb 0 513.25
snRNA:U2:34ABc 0 509
snRNA:U2:38ABa 0 443.65
snRNA:U4:38AB 0 155
snRNA:U4:39B 0 611.833
snRNA:U4atac:82E 0 152.5
snRNA:U5:14B 0 1
snRNA:U5:23D 0 2.5
snRNA:U5:34A 0 11
snRNA:U5:38ABb 0 2.5
snRNA:U5:63BC 0 44
snRNA:U6:96Aa 0 18
snRNA:U6:96Ab 0 9.5
snRNA:U6:96Ac 0 8.5
snRNA:U7 0 4
snRNA:7SK 1259 0
snRNA:U11 33 0
snRNA:U1:21D 1480.57 0
snRNA:U12:73B 4 0
snRNA:U1:82Eb 10.2 0
snRNA:U1:95Ca 1480.57 0
snRNA:U1:95Cb 1484.03 0
snRNA:U1:95Cc 114.633 0
snRNA:U2:14B 4678.89 0
snRNA:U2:34ABa 4789.93 0
snRNA:U2:34ABb 5292.22 0
snRNA:U2:34ABc 5273.23 0
snRNA:U2:38ABa 4557.88 0
snRNA:U2:38ABb 3.75 0
snRNA:U4:38AB 405 0
snRNA:U4:39B 1503.5 0
snRNA:U4atac:82E 548 0
snRNA:U5:14B 25 0
snRNA:U5:23D 19 0
snRNA:U5:34A 32 0
snRNA:U5:38ABb 4 0
snRNA:U5:63BC 742 0
snRNA:U6:96Aa 39.5 0
snRNA:U6:96Ab 1 0
snRNA:U6:96Ac 1 0
snRNA:U7 11 0
基本上所有内容都已复制,其中一行用于 FILE1 中的值,另一行用于 FILE2 中的值。这可能是因为文件之间的累积差异(即,这些特定条目之前的所有非配对条目?)输出的这种加扰在整个文件中运行。
我究竟做错了什么?我没有指定两个文件中的条目并不总是匹配吗?
有没有办法解决这个问题?
非常感谢!卡门
编辑:
这是每个文件的前 15 行,以显示两者的顺序相同,但由于 FILE1 中的项目开始出现而不在 FILE2 中,因此情况开始有所不同,反之亦然。我想知道这是否是导致混淆的原因。
==> FILE1 <==
128up 139
140up 170
14-3-3epsilon 4488
14-3-3zeta 24900
18w 885
26-29-p 517
2mit 3085.34
312 64
4EHP 9012.57
5.8SrRNA:CR40454 16.5
5-HT1A 1867
5-HT1B 366
5-HT2 2611.27
5-HT7 1641.67
5PtaseI 462
==> FILE2 <==
128up 80
140up 19
14-3-3epsilon 1718
14-3-3zeta 5554
18w 213
26-29-p 200
2mit 680.786
312 33
4EHP 1838.44
5-HT1A 303
5-HT1B 42
5-HT2 553.65
5-HT7 348.5
5PtaseI 105
5S_DM 46054.4