我有两个大文件(一组文件名)。每个文件大约有3万行。我试图找到一种快速的方法,在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/^>\ //'
肯定有更好的办法吧?