현재 다음과 같은 두 개의 파일이 있습니다.
파일 1:
2R 101 1:0:0:14:0:0 0:1:0:34:0:0 0:3:0:62:0:0 0:0:0:11:0:0 .02312
2R 201 0:2:0:24:0:0 0:0:0:44:0:0 0:0:0:15:0:0 0:0:0:22:0:0 .02312
2L 301 0:4:0:24:0:0 0:0:0:61:0:0 0:0:0:17:0:0 0:0:0:54:2:0 .02312
3R 551 0:2:0:64:0:1 0:1:0:67:0:0 0:0:0:22:0:0 0:0:0:31:1:0 .02312
3R 651 0:2:0:64:0:1 0:1:0:67:0:0 0:0:0:22:0:0 0:0:0:31:1:0 .02312
X 1312 0:0:3:24:0:0 0:5:0:65:0:0 0:0:0:55:0:0 0:0:0:14:0:0 .02312
X 5342 0:0:3:24:0:0 0:5:0:65:0:0 0:0:0:55:0:0 0:0:0:14:0:0 .02312
파일 2:
2R 201
3R 551
X 5342
내가 원하는 것은 File1에서 처음 두 열의 항목이 File2의 행과 일치하는 모든 행을 추출하는 것입니다. 따라서 이 예를 기반으로 출력 파일을 다음과 같이 만들고 싶습니다.
결과물 파일:
2R 201 0:2:0:24:0:0 0:0:0:44:0:0 0:0:0:15:0:0 0:0:0:22:0:0 .02312
3R 551 0:2:0:64:0:1 0:1:0:67:0:0 0:0:0:22:0:0 0:0:0:31:1:0 .02312
X 5342 0:0:3:24:0:0 0:5:0:65:0:0 0:0:0:55:0:0 0:0:0:14:0:0 .02312
답변1
파일 2가 이라고 가정하면 A
데이터 파일(파일 1)은 다음과 같습니다.b
awk 'FILENAME == "A" { remember[$1 $2]=1 ;}
FILENAME != "A" { if ( $1 $2 in remember ) print ; } ' A b
이것은 생산할 것입니다
2R 201 0:2:0:24:0:0 0:0:0:44:0:0 0:0:0:15:0:0 0:0:0:22:0:0 .02312
3R 551 0:2:0:64:0:1 0:1:0:67:0:0 0:0:0:22:0:0 0:0:0:31:1:0 .02312
X 5342 0:0:3:24:0:0 0:5:0:65:0:0 0:0:0:55:0:0 0:0:0:14:0:0 .02312