두 개의 파일을 연결합니다. 각 파일에는 두 개의 열이 있으며 여러 열이 일치합니다.

두 개의 파일을 연결합니다. 각 파일에는 두 개의 열이 있으며 여러 열이 일치합니다.

파일이 두 개 있어요

파일 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

관련 정보