假设我有一个包含 10,000,000 行的文件 DATA。我有另一个包含 100,000 个字符串的文件 IDS。我想从 DATA 中提取所有包含 IDS 字符串之一的行。另一个条件是文件之间存在 1:1 的关系,因此每个 ID 有一行 DATA,每个 DATA 有一个 ID。
使用标准 linux 命令行实用程序执行此操作的最有效、最简单的方法是什么?
到目前为止我的想法:
- 构建一个巨大的正则表达式并使用 grep(简单,可能会超过 grep 中的某些限制)
- 逐行遍历IDS,分别为每个字符串grep DATA,合并结果。(简单,可能效率很低)
- 在 python 中构建 IDS 的哈希图,遍历 DATA,提取 ID 并检查哈希图(有点困难)