我试图使用存储在文件filter.txt中的模式从data.txt中过滤数据。如下图所示,grep -vf对于大文件来说太慢
grep -v -f filter.txt data.txt > op.txt
这grep的时间超过10-15分钟30-40K线filter.txt和300K〜行data.txt中。
有什么办法可以加快这个速度吗?
的data.txt
data1
data2
data3
filter.txt
data1
op.txt
data2
data3
这适用于由codeforester提供的解决方案,但在filter.txt是空的失败。
请包括来自这两个文件样本线。你可能想看看这个帖子,这个帖子对这个问题有广泛的讨论:http://stackoverflow.com/questions/42239179/fastest-way-to-find-lines-of-a-text-file-from-另一个更大的文本文件在bash – codeforester
感谢您的链接。关于类似问题的良好讨论。 awk'FNR == NR {hash [$ 1];下一个} $ 2在散列'file1.txt FS ='|' file2.txt适用于匹配行,但需要反转结果。不知道如何使它适用于反转匹配。 – user3150037