https://teratail.com/questions/kvbnxs63kpei19
この質問の操作をしています。この質問のfile1にあたるファイルの行数が5万行で、file2にあたるファイルの行数が28万行でデータの中身も大きいです。(580MB)
この状況で操作した際に、ベストアンサーの
bash
1grep -E -f <(sed -E 's/^([0-9]+).*/^\1[ \t]/' file1) file2
のコマンドを使用すると、強制終了と出てきてしまいます。
おそらくファイルサイズが大きすぎるので、5万行と28万行のマッチングをしているときにメモリが足りなくなってしまうんだと思います。
そう思って、とりあえず28万の方を1万行と1000行に分割してそれぞれforループで同様にやってみましたが、それでも多くて強制終了してしまいました。(1万x5万のマッチングを28回、1000x5万のマッチングを280回)
file1の方も分割してみようと思ったのですが、両方分割した際にすべてのマッチングができているか、どうやってマージするか等いろいろ考慮することが多くて混乱してしまいます。
良い方法がありましたらご教授お願いいたします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。