다음 질문에 대한 답변을 살펴보았지만 아래와 같은 예상 결과를 얻을 수 없었습니다.
두 파일의 첫 번째 열을 비교하고 첫 번째 열이 일치하면 두 번째 파일의 전체 줄을 인쇄합니다.
파일 1
CLASS|124655
CLASS|124656
CLASS|124657
CLASS|124658
파일 2
CLASS|124655|STEVE|SMITH||
CLASS|124656|ROGERS|KNIGHT||
CLASS|124657|MITCHELL|BRADFORD||
CLASS|124657||||1236536
CLASS|124658|NORMAN|JONES||
CLASS|124658||||1236539
CLASS|124665|JEFF|JONES||
CLASS|124665||||1236556
예상 출력
CLASS|124655|STEVE|SMITH||
CLASS|124656|ROGERS|KNIGHT||
CLASS|124657|MITCHELL|BRADFORD||
CLASS|124657||||1236536
CLASS|124658|NORMAN|JONES||
CLASS|124658||||1236539
grep -f file1 file2를 시도했지만 커널에 의해 종료되어 처리하는 데 너무 오래 걸렸습니다. 파일 1과 파일 2 모두 100만 개가 넘는 레코드를 가지고 있습니다.
답변1
한 가지 awk
해결책은 다음과 같습니다.
$ awk -v FS="|" 'NR==FNR {get[$1"|"$2]++; next} get[$1"|"$2]' f1.txt f2.txt
이것이 백만 개의 레코드에 작동하는지 확실하지 않습니다.