在一个文件中找到不在另一个文件中的行的快速方法?
我有两个大文件(文件名集)。每个文件大约有30,000行。我试图找到一种快速查找file1中不存在于file2中的行的方法。
例如,如果这是file1:
line1 line2 line3
这是file2:
line1 line4 line5
然后我的结果/输出应该是:
line2 line3
这有效:
grep -v -f file2 file1
但是在我的大文件上使用它时非常非常慢。
我怀疑有一个很好的方法来使用diff(),但输出应该只是行,没有别的,我似乎无法找到一个开关。
任何人都可以帮我找到一个快速的方法,使用bash和基本的Linux二进制文件?
编辑:为了跟进我自己的问题,这是我到目前为止使用diff()找到的最好方法:
diff file2 file1 | grep '^>' | sed 's/^>\ //'
当然,必须有更好的方法吗?
慕斯王
相关分类