最近有一位同行和我在GNU grep 2.5.1中發現了一個有趣的bug,其中標準輸入行數超過200,000,000個字符會導致grep失敗,即使模式不在長線之一。但是,如果grep用grep match file
讀取文件,它工作正常。看來這個bug在2.5.3中被修復。奇怪的grep 2.5.1 bug在cat'd閱讀長行
cat big_file | grep pattern # this dies with an exit code 0 after encountering a long line
grep pattern big_file # works fine!
有沒有人知道爲什麼會發生這種情況?線路限制是真正的原因嗎?
第一個例子是沒用的貓用的,所以不要用它。你的問題解決了。以 – ghostdog74 2009-12-04 08:36:15
貓爲例,真正的stdin來自腳本。 – Vince 2009-12-04 16:30:52
不同之處在於grep可以將文件映射到內存中,但它沒有緩衝區標準輸入 – 2012-10-05 12:08:23