cat 和 grep 处理一个巨大的文件 - 管道破裂

cat 和 grep 处理一个巨大的文件 - 管道破裂

我正在尝试 cat 和 grep 一个 40 GB 的大文件。输出一些结果后,我的进程被终止了。

知道问题可能出在哪里吗?使用 OSX

[1]    37392 broken pipe  cat output.txt |
       37393 killed       grep --color=auto -C 20 201804090004054066628236

我可以确认这是由于grep内存使用量造成的。它的内存使用量猛增至近 100 GB

答案1

看起来cat报告了管道损坏,因为grep被杀死了。如果进程消耗了太多内存,并且触发了 OOM(内存不足)杀手,通常会发生这种情况。您可以尝试不使用无用cat

grep --color=auto -C 20 201804090004054066628236 output.txt

相关内容