首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两个文件连接起来,每个文件有两个列,每个列都有多个列。

将两个文件连接起来,每个文件有两个列,每个列都有多个列。
EN

Unix & Linux用户
提问于 2016-11-17 21:08:11
回答 1查看 149关注 0票数 2

我有两份文件

文件A

代码语言:javascript
复制
MUREX_2089975   :SBE Zinc Non-Option    118510  metals  USD -308410
MUREX_2097300   :SBE Zinc Non-Option    118510  metals  USD 7751
MUREX_2097474   :SBE Zinc Non-Option    118510  metals  USD -140062
MUREX_2097928   :SBE Zinc Non-Option    118510  metals  USD 46504
MUREX_2099168   :SBE Zinc Non-Option    118510  metals  USD 38906
MUREX_2102690   :SBE Zinc Non-Option    118510  metals  USD -139992
MUREX_2106241                   
MUREX_2106570                   
MUREX_2106577                   
MUREX_2107869                   
MUREX_748219    :SBE Zinc Non-Option    118510  metals  USD 7743
MUREX_777665    :SBE Zinc Non-Option    118510  metals  USD 7750
MUREX_778819    :SBE Zinc Non-Option    118510  metals  USD 7743

档案B

代码语言:javascript
复制
MUREX_2089975   :SBE Zinc Non-Option    118510  metals  USD -296889
MUREX_2097300   :SBE Zinc Non-Option    118510  metals  USD 7450
MUREX_2097474                   
MUREX_2097928   :SBE Zinc Non-Option    118510  metals  USD 44699
MUREX_2099168                   
MUREX_2102690   :SBE Zinc Non-Option    118510  metals  USD -134474
MUREX_2106241   :SBE Zinc Non-Option    118510  metals  USD 7450
MUREX_2106570   :SBE Zinc Non-Option    118510  metals  USD -14942
MUREX_2106577   :SBE Zinc Non-Option    118510  metals  USD -14942
MUREX_2107869   :SBE Zinc Non-Option    118510  metals  USD 7450
MUREX_748219    :SBE Zinc Non-Option    118510  metals  USD 7444
MUREX_777665    :SBE Zinc Non-Option    118510  metals  USD 7453
MUREX_778819    :SBE Zinc Non-Option    118510  metals  USD 7444

我正在使用的代码:

代码语言:javascript
复制
join -t, -j 1 -a 1 -a 2 -o auto FileA FileB

我想要的基本上是比较第6栏从每个文件,而充分填写第1栏至第5栏。

预期结果

代码语言:javascript
复制
MUREX_2089975   :SBE Zinc Non-Option    118510  metals  USD -308410 -296889
MUREX_2097300   :SBE Zinc Non-Option    118510  metals  USD 7751    7450
MUREX_2097474   :SBE Zinc Non-Option    118510  metals  USD -140062 
MUREX_2097928   :SBE Zinc Non-Option    118510  metals  USD 46504   44699
MUREX_2099168   :SBE Zinc Non-Option    118510  metals  USD 38906   
MUREX_2102690   :SBE Zinc Non-Option    118510  metals  USD -139992 -134474
MUREX_2106241   :SBE Zinc Non-Option    118510  metals  USD         7450
MUREX_2106570   :SBE Zinc Non-Option    118510  metals  USD         -14942
MUREX_2106577   :SBE Zinc Non-Option    118510  metals  USD         -14942
MUREX_2107869   :SBE Zinc Non-Option    118510  metals  USD         7450
MUREX_748219    :SBE Zinc Non-Option    118510  metals  USD 7743    7444
MUREX_777665    :SBE Zinc Non-Option    118510  metals  USD 7750    7453
MUREX_778819    :SBE Zinc Non-Option    118510  metals  USD 7743    7444

实际结果

代码语言:javascript
复制
MUREX_2089975   :SBE Zinc Non-Option    118510  metals  USD -308410 :SBE Zinc Non-Option    118510  metals  USD -296889
MUREX_2097300   :SBE Zinc Non-Option    118510  metals  USD 7751    :SBE Zinc Non-Option    118510  metals  USD 7450
MUREX_2097474   :SBE Zinc Non-Option    118510  metals  USD -140062                 
MUREX_2097928   :SBE Zinc Non-Option    118510  metals  USD 46504   :SBE Zinc Non-Option    118510  metals  USD 44699
MUREX_2099168   :SBE Zinc Non-Option    118510  metals  USD 38906                   
MUREX_2102690   :SBE Zinc Non-Option    118510  metals  USD -139992 :SBE Zinc Non-Option    118510  metals  USD -134474
MUREX_2106241                                                       :SBE Zinc Non-Option    118510  metals  USD 7450
MUREX_2106570                                                       :SBE Zinc Non-Option    118510  metals  USD -14942
MUREX_2106577                                                       :SBE Zinc Non-Option    118510  metals  USD -14942
MUREX_2107869                                                       :SBE Zinc Non-Option    118510  metals  USD 7450
MUREX_748219    :SBE Zinc Non-Option    118510  metals  USD 7743    :SBE Zinc Non-Option    118510  metals  USD 7444
MUREX_777665    :SBE Zinc Non-Option    118510  metals  USD 7750    :SBE Zinc Non-Option    118510  metals  USD 7453
MUREX_778819    :SBE Zinc Non-Option    118510  metals  USD 7743    :SBE Zinc Non-Option    118510  metals  USD 7444

edit1:数据实际样子的一个例子:

代码语言:javascript
复制
 MUREX_990422,:SBE Zinc Non-Option,118510,metals,USD,15501
EN

回答 1

Unix & Linux用户

发布于 2016-11-17 22:59:35

我不认为直接通过加入就能做到这一点。您可以做的是首先提取一个包含所有键和列1-5的文件,作为每一行的开始。然后,您可以使用join将这两个数字放在末尾。

实际上,只包含join字段的行是什么样子的?它只是字段,还是后面带有逗号的字段?在前一种情况下,你可以这样做

代码语言:javascript
复制
awk -F , 'NF > 1 {print}' fileA fileB | cut -d, -f1-5 | sort -u | \
join -t, -o 0,1.2,1.3,1.4,1.5,2.6 - fileA | \
join -t, -o 0,1.2,1.3,1.4,1.5,1.6,2.6 - fileB
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/324117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档