처음 세 열이 다른 파일의 처음 세 열과 일치하면 행을 인쇄합니다.

처음 세 열이 다른 파일의 처음 세 열과 일치하면 행을 인쇄합니다.

내 file1에는 3개의 열이 있고 file2에는 8개의 열이 있습니다. 내가 원하는 것은 파일 2의 처음 3개 열이 파일 1에서 발견된 다음 파일 2의 8개 열을 모두 인쇄하는 것입니다.

비슷한 코드를 시도했습니다

awk 'NR==FNR{c[$1$2$3]++;next};c[$1$2$3]>0' file1 file2

...하지만 file2에서 마지막으로 일치하는 줄만 인쇄합니다.

나는 무엇이 잘못되었는지 모른다. 누구든지 나를 도와줄 수 있나요? 진심으로 감사드립니다! 미리 감사드립니다!

파일 1은 다음과 같습니다

7000000185249020    89812   89911
7000000185249020    89912   90011
7000000185249020    202532  202631
7000000185249020    202632  202704
7000000185249020    202764  202863
.....

파일 2는 다음과 같습니다

7000000185249020    89812   89911   100 14.1    20  0.511   48
7000000185249020    89912   90011   100 12.7    19.8    0.642   49
7000000185249020    90012   90023   12  11  17.9    0.704   58.3

답변1

두 파일의 길이가 같으면 다음을 수행할 수 있습니다.

paste file1 file2 | awk '$1==$4 && $2==$5 && $3==$6 { print $4,$5,$6,$7,$8,$9,$10,$11}'

관련 정보