1つの電子メールファイル(460万行)があります。別の電子メールファイル(1億行)があります。
100m行のファイルに4.6m行が何回も表示されることを確認したいと思います。
私はこれを調べて、次のことを試しました:
"grep -f file1 file2> output.txt" <役に立たない。
"grep -wFf file1 file2 > output.txt" < 役に立たない。
私はこれにCygwinを使用しており、上記の2つのコマンドはすべて「実行」(エラーメッセージなし)され、次のX時間後に完了し、「output.txt」には何も出力されません。
ベストアンサー1
comm -12 <(sort file1) <(sort file2) | wc -l
説明する
comm -12 foo bar
foo
:ファイルに一致する行を探しますが、ファイルを並べ替える必要があるためbar
、<(sort file1)
各ファイルはに転送される前にソートされますcomm
。| wc -l
:一致する行を印刷した後にパイプすると、行数がwc
計算されます。
警告する
これにより、正確に一致する行が検索されます。一貫性のない改行などにより、行が一致しない可能性があります。