10,000,000行のファイルDATAがあるとしましょう。100,000文字列の別のファイルIDSがあります。IDSの文字列の1つを含むDATAからすべての行を抽出したいと思います。追加の条件は、ファイル間に1:1の関係があるため、すべてのIDに1行のDATAがあり、すべてのDATAに1つのIDがあることです。
標準のLinuxコマンドラインユーティリティを使用してこれを行うための最も効率的で最も複雑でない方法は何ですか?
これまでの私の考え:
- 巨大な正規表現を作成し、grepを使用します(簡単、grep内で制限を超える可能性があります)
- IDSを1行ずつ調べ、各文字列のDATAを個別にgrepして、結果をマージします。(簡単、おそらく非常に非効率的)
- PythonでIDSのハッシュマップを作成し、DATAをループし、IDを抽出して、ハッシュマップと照合します(少し難しい)