我正在对两个较大的文件(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
将模式指定为固定字符串,以换行符分隔。
就您最初的代码思想而言,管道输入cat
是grep
一种无用的资源浪费。 grep
可以直接读取文件。