读取较大的文件 A 并检索第二个文件中的相关字符串并创建输出

读取较大的文件 A 并检索第二个文件中的相关字符串并创建输出

我正在对两个较大的文件(1.6 到 4700 万个条目)运行 for 循环,并且每行 grep 都花费了很多时间。想知道我是否可以在这里使用另一种更快的解决方案。基本上,我需要读取每一行的 FILE-A 并将其与 FILE-B.csv 进行 grep 并创建结果输出。

FILE-A: (1.6 million IDs)
FILE-B.csv: (47 million IDs & Other Attributes)

for UID in $(cat FILE-A); do
  cat FILE-B.csv | grep $i >> OUTPUT-FILE.csv
done

答案1

grep -F -f FILE-A FILE-B.csv

-f指定从中获取模式的文件。 -F将模式指定为固定字符串,以换行符分隔。

就您最初的代码思想而言,管道输入catgrep一种无用的资源浪费。 grep可以直接读取文件。

相关内容