我有两个文件,file1.txt和file2.txt。 file1.txt有大约14000条线,file2.txt大约有20亿条线。 每行file1.txt有一个字段f1,而file2.txt有3个字段,f1通过f3,以分隔|。
我想从中找到匹配项的所有行(如果我们不想花费额外的时间来拆分的值,则可以找到行file2.txt中f1的任何行)。file1.txtf2file2.txtfile2.txt
file1.txt(大约14000行,未排序):
foo1
foo2
...
bar1
bar2
...
file2.txt(大约20亿行,未排序):
date1|foo1|number1
date2|foo2|number2
...
date1|bar1|number1
date2|bar2|number2
...
预期输出:
date1|foo1|number1
date2|foo2|number2
...
date1|bar1|number1
date2|bar2|number2
...
这是我尝试过的,似乎要花几个小时才能运行:
fgrep -F -f file1.txt file2.txt > file.matched
我想知道是否有更好,更快的方法来执行常见的Unix命令或小的脚本。