为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

在一个文件中找到不在另一个文件中的行的快速方法?我有两个大文件(文件名集)。每个文件大约有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/^>\ //'当然,必须有更好的方法吗?
查看完整描述

3 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

通讯命令(简称“常用”)可能是有用的comm - compare two sorted files line by line

#find lines only in file1comm -23 file1 file2 

#find lines only in file2comm -13 file1 file2 

#find lines common to both filescomm -12 file1 file2

man文件实际上非常易读。


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 1663 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信