행과 열이 다른 두 파일을 병합하고 일치하는 행과 열을 출력하는 방법은 무엇입니까?

행과 열이 다른 두 파일을 병합하고 일치하는 행과 열을 출력하는 방법은 무엇입니까?

나는 가지고있다파일 1(견본):

60108903374
60172485121
60108919381
60174213128
60108919951
60108919970
601112020106
601112020107
601112020108
601112020113
601112020114
60175472940

그리고파일 2:

60179970001,A
60172681920,A
60174202041,A
60172514180,A
60174314679,A
60174325306,A
60175472940,A
60174213128,A
60175328984,A
60175349857,A
60172796759,A
60172798922,A
60179195129,A
60172485121,B
60173483126,A
60172683175,A
60174521828,A
60142536314,B
60175347909,B
60175183031,B

file1첫 번째 열을 기준으로 합계 file2를 출력 일치와 결합하고 의 두 번째 열을 표시하고 싶습니다 file2.

원하는 출력:

60172485121,B
60174213128,A

file1~80,000개의 행과 500,000개의 행이 있습니다 file2.

다음을 사용해 보세요:

join -1 1 -2 1 -o 1.1,2.2 file1 file2

답변1

join -t, <(sort file1) <(sort -t, file2)

위 작업이 완료되었습니다.

답변2

awk -F, 'NF==1 {a[$1]++}; 
         NF>=2 && a[$1]' file1 file2
  • 필드가 하나만 있는 경우 저장합니다.
  • 더 많은 정보가 있고 첫 번째 필드가 저장되어 있으면 인쇄하세요.

얻은 출력:

60175472940,A
60174213128,A
60172485121,B

관련 정보