为什么grep不断触发Windows警告?

我使用Cygwin在Windows 7上运行bash ,使用mintty作为控制台。 当我在一个非常大的文本文件(14GB)上使用grep -b 5 -a 5时,更准确地说,我发现每隔3-4秒钟,就会触发一连串的Windows警告/信息铃声,因为grep正在输出到控制台。 在过去的几周里,我还没有经历过这种情况,尽pipe这也是我第一次以grep的方式输出到控制台。

有什么可以触发这个,我怎样才能摆脱它?

听起来像终端正在将部分文本解释为控制字符。 你确定该文件只包含纯文本吗? Mintty可以选择配置“铃”控制字符的功能; 确保声音复选框未被选中。

另一种解决方案是将grep输出管道输出到一些东西,这些东西可以过滤掉ASCII范围中不可见字符的东西。

尝试用你的grep管道:

 | sed 's/\x7//g' 

嘟嘟声如果是由铃声引起的,应该消失。 您还可以使用以下命令清除所有不可打印的字符:

 | sed 's/['$(printf '\\x%x' {0..31})']//g'