grep-f替代方案sed?awk?

grep-f替代方案sed?awk?,sed,awk,grep,Sed,Awk,Grep,我想从文件2中筛选出文件1条目 file1 = 95000 file2 = 4500000 要花很长时间才能完成。 还有别的选择吗?塞德?啊 谢谢我不认为grep-f真的适合处理这样大小的过滤文件,所以某种数据库支持的解决方案可能是最好的选择 您可以将这两个文件逐行加载到SQLite数据库中,然后执行以下简单的SQL操作: egrep -f file1 file2 然后把它们扔出去。您可以使用SQLite直接从命令行执行所有这些操作。当然,您可以使用awk。将file2条目放入数组。然后迭代

我想从文件2中筛选出文件1条目

file1 = 95000
file2 = 4500000
要花很长时间才能完成。 还有别的选择吗?塞德?啊


谢谢

我不认为
grep-f
真的适合处理这样大小的过滤文件,所以某种数据库支持的解决方案可能是最好的选择

您可以将这两个文件逐行加载到SQLite数据库中,然后执行以下简单的SQL操作:

egrep -f file1 file2

然后把它们扔出去。您可以使用SQLite直接从命令行执行所有这些操作。

当然,您可以使用
awk
。将
file2
条目放入数组。然后迭代
file1
,每次在数组中查找这些条目时

SELECT line FROM file2
EXCEPT
SELECT line FROM file1
使用这些选项可以得到您想要的

awk 'FNR==NR{a[$0];next}($0 in a)' file2 file1

这会从文件2中筛选出文件1吗?像egrep-vf文件1文件2?
awk 'FNR==NR{a[$0];next}(!($0 in a))' file2 file1
awk 'FNR==NR{a[$0];next}(!($0 in a))' file1 file2
awk 'FNR==NR{a[$0];next}($0 in a)' file1 file2