파일이 두 개 있어요
파일 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 == NR
using and test 대신 and를 사용할 수도 있습니다 .FR != NR
FILENAME == "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