Есть или была проблема исчерпания памяти, с которой я столкнулся при чтении очень длинных строк, но в большинстве систем выделение 200 МБ вряд ли даст сбой.
http://savannah.gnu.org/bugs/?9886
Я полагаю, что при чтении напрямую используются файлы, отображаемые в память, и, очевидно, это не вариант при чтении из канала, поэтому, возможно, в этом и разница.
Кроме того, насколько сложен ваш шаблон? Существует известное ограничение grep, когда опция {n,m}
с большим количеством может привести к выделению огромных объемов памяти.