假设我有10,000,000行的文件DATA。我有另一个文件IDS,包含100,000个字符串。我想从DATA中提取包含IDS中一个字符串的所有行。另一个条件是文件之间存在1:1的关系,因此每个ID都有一行DATA,每个DATA都有一个ID。
使用标准linux命令行实用程序执行此操作的最有效,最简单的方法是什么?
到目前为止我的想法:
答案 0 :(得分:3)
grep -F -f IDS DATA
不要错过-F
:它会阻止将IDS解释为正则表达式,并启用更有效的Aho-Korasick算法。
答案 1 :(得分:2)
如果IDS包含您需要在DATA中找到的确切字符串,每行一个字符串,请尝试使用
grep --file=IDS DATA > results