gpt4 book ai didi

linux - 从文件中提取包含大量字符串之一的行

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:53:06 25 4
gpt4 key购买 nike

假设我有一个包含 10,000,000 行的数据文件。我有另一个包含 100,000 个字符串的文件 IDS。我想从 DATA 中提取所有包含来自 IDS 的字符串之一的行。附加条件是文件之间存在 1:1 关系,因此每个 ID 有一行 DATA,每个 DATA 有一个 ID。

使用标准 Linux 命令行实用程序执行此操作的最有效、最简单的方法是什么?

到目前为止我的想法:

  1. 构建一个巨大的正则表达式并使用 grep(简单,可能会超出 grep 的一些限制)
  2. 逐行检查 IDS 并分别为每个字符串 grep DATA,合并结果。 (简单,可能效率很低)
  3. 在 python 中构建 IDS HashMap ,遍历 DATA,提取 ID 并对照 HashMap 进行检查(有点难)

最佳答案

grep -F -f IDS DATA

不要错过 -F:它可以防止将 IDS 解释为正则表达式,并启用更高效的 Aho-Korasick 算法。

关于linux - 从文件中提取包含大量字符串之一的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15119885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com