これには2つの大きなテキストファイルがあり、30mb
それぞれ1つずつ必要ですgrep
。grep -f "file01.txt" "file02.txt" > file03.txt
これを行うと、「メモリ不足」エラーが返されます。
アルファベット順に関係なく、これらのファイルをどのように比較できますか?
ベストアンサー1
file01.txt
実際の内容を含まない限り一般的な表現、努力する:
grep -Ff "file01.txt" "file02.txt" > file03.txt
-F
正規表現ではなく固定文字列としてgrep
処理するように指示します。file01.txt
これにより、速度が大幅に向上し、メモリ要件が大幅に削減されます。
一般的な表現
あるいは、file01.txt
正規表現を含める場合は、それらを複数の部分に分割してgrep
各部分に個別に適用できます。
split -dn 10 "file01.txt" ./tmp-file01.
for f in ./tmp-file01.*; do grep -f "$f" "file02.txt"; done >file03.txt
上記の内容はfile01.txt
10箇所に分かれています。使用可能なメモリによっては、より多くのメモリが必要になる場合があります。
file01.txt が次の場合いいえ正規表現を作成し、-F
2行目に次を使用します。
for f in ./tmp-file01.*; do grep -Ff "$f" "file02.txt"; done >file03.txt