두 파일 비교

두 파일 비교

파일이 두 개 있어요

파일 1:

45 789 
46 4546
78 4564
71 546

파일 2:

41 456 
46 456
40 465
45 456

이 파일들을 비교하고 출력을 얻고 싶습니다. 첫 번째 파일의 첫 번째 열에 있는 숫자가 두 번째 파일의 첫 번째 열에 있으면 해당 숫자가 포함된 두 번째 파일의 행을 인쇄합니다.

원하는 출력:

46 456
45 456

grep 일 수 있습니까? 매우 감사합니다

답변1

첫 번째 파일의 열을 읽어 "표시된" 값의 배열을 채웁니다. 그런 다음 두 번째 파일을 읽을 때 첫 번째 값이 "표시되면" 레코드를 인쇄합니다.

$ awk 'NR == FNR { data[$1] = 1 } NR != FNR && data[$1] { print }' file1 file2
46 456
45 456

FR == NRusing and test 대신 and를 사용할 수도 있습니다 .FR != NRFILENAME == "file1"FILENAME == "file2"

답변2

쉘이 bash/ksh/zsh라고 가정합니다.

join -o 0,2.2 <(sort file1) <(sort file2)

답변3

주문하다

awk 'NR==FNR{a[$1];next}($1 in a){print $0}' file1 file2

산출

46 456
45 456

관련 정보