我有两个文件
文件A
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
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
我正在使用的代码:
join -t, -j 1 -a 1 -a 2 -o auto FileA FileB
我想要的基本上是比较每个文件的第 6 列,同时完整填写第 1 列到第 5 列。
预期结果
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
实际结果
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:数据实际外观的一个示例:
MUREX_990422,:SBE Zinc Non-Option,118510,metals,USD,15501
答案1
我认为这不能直接完成加入。您可以做的是首先提取包含所有键和第 1-5 列的文件,以用作每行的开头。然后你可以使用加入将两个数字放在最后。
仅包含连接字段的行在现实中是什么样子的?是只是字段,还是后面带逗号的字段?在前一种情况下,你可以这样做
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