我在运行
grep -Fxvf file1 file2
文件 1 大小:~200MB
文件 2 大小:~300MB
每个文件中的记录数:~300K
平均记录长度:~1K(仅 ASCII 字符)
两个文件之间的差异为 ~18K 条记录
可用内存:~16GB
我尝试了几个不同的grep
版本,并在 VM、WSL 和物理服务器上进行了尝试,但得到了相同的结果。
请注意,我运行了相同的命令,但只使用了两个文件中的几行来识别它不会由于文件中有一些特殊字符而陷入无限循环,并且它是成功的。
这是正常的吗?
我正在尝试输出file2
不存在的记录file1
。
我已经在awk
相同的环境中解决了我的需求,并在不到 10 秒的时间内获得了输出,但我想知道为什么会grep
出现 OOM 的结果。
当我需要查询相同要求时,我几乎总是使用相同的命令,甚至我比较了两个非常大的文件,比如两个大小约为 2GB 的文件,每个文件约有 90M 条记录,并且记录最多包含约 20 个 ASCII 字符,在同一个框中没有任何问题。
我grep
在 SLES12 上使用了 GNU 2.7、2.16,grep
在 WSL 中的 Ubnutu 22.04 上使用了 GNU 3.7。