2つのファイルをリンクします。各ファイルには2つの列があり、複数の列が一致します。

2つのファイルをリンクします。各ファイルには2つの列があり、複数の列が一致します。

ファイルが2つあります。

ファイル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

おすすめ記事