小编Nie*_*000的帖子

在一个文件中找到不在另一个文件中的行的快速方法?

我有两个大文件(文件名集).每个文件大约有30,000行.我试图找到一种快速查找file1中不存在于file2中的行的方法.

例如,如果这是file1:

line1
line2
line3
Run Code Online (Sandbox Code Playgroud)

这是file2:

line1
line4
line5
Run Code Online (Sandbox Code Playgroud)

然后我的结果/输出应该是:

line2
line3
Run Code Online (Sandbox Code Playgroud)

这有效:

grep -v -f file2 file1

但是在我的大文件上使用它时非常非常慢.

我怀疑有一个很好的方法来使用diff(),但输出应该只是行,没有别的,我似乎无法找到一个开关.

任何人都可以帮我找到一个快速的方法,使用bash和基本的Linux二进制文件?

编辑:为了跟进我自己的问题,这是我到目前为止使用diff()找到的最好方法:

diff file2 file1 | grep '^>' | sed 's/^>\ //'
Run Code Online (Sandbox Code Playgroud)

当然,必须有更好的方法吗?

bash diff grep find

199
推荐指数
9
解决办法
12万
查看次数

标签 统计

bash ×1

diff ×1

find ×1

grep ×1