이메일 파일을 기반으로 한 grep 이메일 파일

이메일 파일을 기반으로 한 grep 이메일 파일

1개의 이메일 파일(460만 라인)이 있습니다. 또 다른 이메일 파일(1억 라인)이 있습니다.

100m 줄이 있는 파일에 4.6m 줄이 몇 개나 나타나는지 확인하고 싶습니다.

나는 이것을 조사하고 다음을 시도했습니다:
"grep -f file1 file2 > output.txt" < 소용이 없습니다.
"grep -wFf file1 file2 > output.txt" < 소용이 없습니다.

나는 이를 위해 Cygwin을 사용하고 있으며 위의 두 명령은 모두 "실행"(오류 메시지 없이)된 다음 X 시간 후에 완료되고 "output.txt"에 아무 것도 출력되지 않습니다.

답변1

comm -12 <(sort file1) <(sort file2) | wc -l

설명하다

  • comm -12 foo barfoo: 파일과 에서 일치하는 줄을 찾지 bar만 파일을 정렬해야 하므로,
  • <(sort file1)각 파일은 으로 전송되기 전에 정렬됩니다 comm.
  • | wc -l: 일치하는 줄을 인쇄한 후 에 파이프하면 wc줄 수를 계산합니다.

경고하다

그러면 정확히 일치하는 행이 검색됩니다. 일관되지 않은 줄 바꿈 등으로 인해 줄이 일치하지 않을 수 있습니다.

관련 정보