Sem quebras de linha, o grep está armazenando em buffer toda a entrada, para que possa mostrar a "linha" onde a string aparece.
Duas perguntas:
- Você precisa do conteúdo adjacente?
- existem espaços ou outros caracteres que separam os tokens?
Se você não precisa do contexto do conteúdo adjacente e há espaços que separam os tokens, apenas use tr para transformar espaços em feeds de linha:
./a.out | tr ' ' '\n' | grep 'stock_ticker'
Se você quiser o conteúdo adjacente, basta adicionar uma das opções -C
-A
ou -B
ao comando grep. Isso permite que o grep mostre as "linhas" antes e / ou depois do ticker no padrão de pesquisa.